访问 Set 元素的速度很快,并且 Set 类型必须是可哈希的。
我是这么认为的 Swift 只存储每个元素的哈希值,但我认为原始值(未哈希)也可以访问。 例如:
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]
for genre in favoriteGenres {
print("(genre)")
}
输出:
// Jazz
// Hip hop
// Classical
swift 如何在内存中存储 Set 类型并访问它?
你是对的,Swift 存储哈希值。
默认情况下,Swift 的所有基本类型(如 String、Int、Double 和 Bool)都是可哈希的,并且可以用作设置值类型或字典键类型。默认情况下,没有关联值的枚举事例值(如枚举中所述)也是可哈希的。
如果存储自己的自定义类型,它们必须符合哈希协议。
您可以将自己的自定义类型用作设置值类型或字典键类型,方法是使它们符合 Swift 标准库中的 Hashable 协议。符合 Hashable 协议的类型必须提供名为 hashValue 的可获取 Int 属性。[...]
查看 https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html ->集
在文档中,我找不到他们存储集合类型的确切方式,但据我了解他们访问的有关哈希值Sets
。