访问Set元素很快,Set类型必须是hashable。
我认为Swift只存储每个元素的散列值,但我发现原始值(不是散列值)也可以访问。例如:
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]
for genre in favoriteGenres {
print("\(genre)")
}
输出:
// Jazz
// Hip hop
// Classical
swift如何在内存中存储Set type并访问它?
发布于 2018-03-03 18:22:46
你是对的,Swift存储散列值。
默认情况下,Swift的所有基本类型(如String、Int、Double和Bool)都是hashable,并且可以用作设置值类型或字典键类型。默认情况下,没有关联值的枚举案例值(如枚举中所述)也是可哈希的。
如果您存储自己的自定义类型,则它们必须符合Hashable协议。
您可以使用自己的自定义类型作为设置值类型或字典键类型,方法是使它们符合Swift标准库中的Hashable协议。符合Hashable协议的类型必须提供一个名为hashValue...的gettable Int属性。
在文档中,我找不到它们如何存储Set类型的确切方式,但据我所知,它们访问的Sets
是关于散列值的。
https://stackoverflow.com/questions/49082974
复制相似问题