当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Slice indices用法及代码示例


用法一

实例属性

indices

对集合下标有效的索引,按升序排列。

声明

var indices: Slice<Base>.Indices { get }
Base 符合 Collection 时可用。

详述

集合的indices 属性可以持有对集合本身的强引用,从而导致集合被非唯一引用。如果在迭代集合的索引时改变集合,强引用可能会导致集合的意外副本。为避免意外复制,请改用以 startIndex 开头的 index(after:) 方法来生成索引。


var c = MyFancyCollection([10, 20, 30, 40, 50])
var i = c.startIndex
while i != c.endIndex {
    c[i] /= 5
    i = c.index(after: i)
}
// c == MyFancyCollection([2, 4, 6, 8, 10])

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

用法二

实例属性

indices

对集合下标有效的索引,按升序排列。

声明

var indices: DefaultIndices<Self> { get }
IndicesDefaultIndices<Self> 时可用。

详述

集合的indices 属性可以持有对集合本身的强引用,从而导致集合被非唯一引用。如果您在迭代集合的索引时改变集合,强引用可能会导致集合的意外副本。为避免意外复制,请改用以 startIndex 开头的 index(after:) 方法来生成索引。


var c = MyFancyCollection([10, 20, 30, 40, 50])
var i = c.startIndex
while i != c.endIndex {
    c[i] /= 5
    i = c.index(after: i)
}
// c == MyFancyCollection([2, 4, 6, 8, 10])

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Slice indices。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。