當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift UnsafeMutableBufferPointer enumerated()用法及代碼示例


實例方法

enumerated()

返回一個對序列(nx),其中 n 表示從零開始的連續整數,而 x 表示序列的一個元素。

聲明

func enumerated() -> EnumeratedSequence<Self>

返回值

枚舉序列的對序列。

詳述

此示例枚舉字符串 “Swift” 的字符並打印每個字符及其在字符串中的位置。


for (n, c) in "Swift".enumerated() {
    print("\(n): '\(c)'")
}
// Prints "0: 'S'"
// Prints "1: 'w'"
// Prints "2: 'i'"
// Prints "3: 'f'"
// Prints "4: 't'"

枚舉集合時,每對的整數部分是枚舉的計數器,但不一定是配對值的索引。這些計數器隻能在從零開始的 integer-indexed 集合的實例中用作索引,例如 ArrayContiguousArray 。對於其他集合,計數器可能超出範圍或用作索引的類型錯誤。要使用其索引迭代集合的元素,請使用 zip(_:_:) 函數。

此示例遍曆集合的索引和元素,構建一個列表,該列表由具有五個或更少字母的名稱索引組成。


let names: Set = ["Sofia", "Camilla", "Martina", "Mateo", "Nicolás"]
var shorterIndices: [Set<String>.Index] = []
for (i, name) in zip(names.indices, names) {
    if name.count <= 5 {
        shorterIndices.append(i)
    }
}

現在 shorterIndices 數組保存了 names 集合中較短名稱的索引,您可以使用這些索引來訪問集合中的元素。


for i in shorterIndices {
    print(names[i])
}
// Prints "Sofia"
// Prints "Mateo"

可用版本

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

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 UnsafeMutableBufferPointer enumerated()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。