let setOfStrings: Set<String> = ["ONE", "TWO", "THREE"];
它的行为与数组不同,因此
setOfStrings[0]
不起作用。有什么想法吗?
最佳答案
您可能希望按如下方式访问集合的第一个元素:
if let first = setOfStrings.first {
print(first)
}
假设您已经熟悉:Set是无序数据结构,即:
first
值不能保证为“ONE”。您不能通过索引以整数(
setOfStrings[0]
)的形式访问集合中的元素,但是,由于集合表示一个Collection(集合采用),SetIndex可能是您要查找的内容,方法是使用当前集合的Set.Index,如下所示:let setOfStrings: Set<String> = ["ONE", "TWO", "THREE"]
// for me, it sorted as: {"THREE", "TWO", "ONE"}
let mySetIndex = setOfStrings.index(setOfStrings.startIndex, offsetBy: 1)
let secondElemnet = setOfStrings[mySetIndex] // "TWO"
注意:
通过使用subscript(_:),您应该能够获得e特定元素。
index(_:offsetBy:):
返回与给定索引的指定距离的索引。
mySetIndex
数据类型为SetIndex<String>
。