0
在夫特套,有一个方法来构造一个类型的“集的给定尺寸的?”(尽管在夫特没有依赖性类型的,是这样的结构仍然可能没有过多的“扭曲?”)给定尺寸为夫特型
作为一个例子,我希望能够定义一个参数化类型SetOfSizeTwo<T>
,它的实例是由(Hashable
)类型T
正好两个对象组成的集合。
目前,我使用的是穷人的代理:
struct SetOfSizeTwo<T> where T: Hashable {
var set = Set<T>(minimumCapacity: 2)
}
然而,这种类型不会强制属性set
到是2
大小的更新
的博客文章A hack for fixed-size arrays in Swift,由Ole Begemann引导,我相信如果可能的话,在Swift 4中构建一个固定大小的类型是非常重要的。
我认为最好的方法是创建一个包装类自定义添加和删除方法。并且让底层的数据结构保密,这样没有人可以修补它。 – Michal
@Michal谢谢你的实际建议。基本上,我想强制设置大小作为编译时间约束,理想情况下使用类型。但是我怀疑如果没有依赖类型的语言支持,这是不可能的。 – egnha