站点图标 神之眼的博客

在Swift中,遍历IndexSet 集合的一些方法

當前文章的短網址連結為: https://unos.top/7xbg

注意事项:

1. 通过 forEach 方法遍历

let indexSet = IndexSet([0, 2, 4, 6, 8])

indexSet.forEach { index in
    print("Index: \(index)")
}
Swift

这个方法会遍历 IndexSet 中的每一个索引并执行闭包中的代码。

2. 使用 enumerated() 方法

如果你需要同时获取索引和其在 IndexSet 中的位置(即索引的顺序),可以使用 enumerated():

for (offset, index) in indexSet.enumerated() {
    //index 就是实际要处理的数组索引
    print("Offset: \(offset), Index: \(index)")
}
Swift

这里,offset 表示当前索引在 IndexSet 中的位置(从0开始),而 index 表示 IndexSet 中存储的实际索引值

3. 通过迭代器遍历

IndexSet 实现了 Sequence 协议,因此你可以使用传统的 for-in 循环来遍历:

for index in indexSet {
    print("Index: \(index)")
}
Swift

4. 使用 ranges 属性

如果你的 IndexSet 包含了连续的索引范围,你可以使用 ranges 属性,它返回一个 RangeSet(一组不重叠的范围),然后遍历这些范围:

for range in indexSet.ranges {
    print("Range: \(range)")
    // 你也可以遍历每个范围内的索引
    for index in range {
        print("  Index: \(index)")
    }
}
Swift
退出移动版