Swift如何存储和检索集类型

问题描述 投票:0回答:1

访问Set元素很快,Set类型必须是可清除的。

我认为Swift只存储每个元素的散列值,但是我也可以访问原始值(不是散列)。像这样:

var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]

for genre in favoriteGenres {
    print("\(genre)")
}

输出:

// Jazz
// Hip hop
// Classical

swift store如何在内存中设置类型并访问它?

swift collections hashable
1个回答
0
投票

你是对的,Swift存储了散列值。

默认情况下,Swift的所有基本类型(如String,Int,Double和Bool)都是可清除的,并且可以用作设置值类型或字典键类型。默认情况下,没有关联值的枚举大小写值(如枚举中所述)也是可以清除的。

如果存储自己的自定义类型,则必须符合Hashable协议。

您可以使用自己的自定义类型作为设置值类型或字典键类型,使其符合Swift标准库中的Hashable协议。符合Hashable协议的类型必须提供一个名为hashValue的gettable Int属性。[...]

请参阅https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html - >集

在文档中,我找不到它们存储Set Types的确切方式,但据我所知,Sets可以访问散列值。

© www.soinside.com 2019 - 2024. All rights reserved.