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>

09-28 14:17