在 Swift 中获取 Set<String> 的索引

Jay*_*iyk 0 set swift

let setOfStrings: Set<String> = ["ONE", "TWO", "THREE"];
Run Code Online (Sandbox Code Playgroud)

它的行为不像和数组,所以setOfStrings[0]不起作用。

有任何想法吗?

Ahm*_*d F 5

您可能希望按如下方式访问集合的第一个元素:

if let first = setOfStrings.first {
    print(first)
}
Run Code Online (Sandbox Code Playgroud)

假设你已经熟悉了:Set是无序的数据结构,即:firstvalue不保证为“ONE”。

您不能通过索引作为整数 ( setOfStrings[0])访问集合中的元素,但是,由于 Set 表示一个集合(由集合采用),因此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"
Run Code Online (Sandbox Code Playgroud)

注意:

返回距离给定索引指定距离的索引。

  • mySetIndex数据类型是SetIndex<String>.