在 Swift 中, enumerated() 有哪些常用的使用方式 ?

enumerated() 是什么 ?

  1. enumerate, 词性为 VERB, 中文译为"列举;枚举", When you enumerate a list of things, you name each one in turn.

  2. enumerated, 是 enumerate 的过去式和过去分词

  3. 对于 enumerated() 方法, 苹果官方的描述是: Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence.

swift 复制代码
// enumerated()接口声明
func enumerated() -> EnumeratedSequence<Self>
// EnumeratedSequence接口声明
public struct EnumeratedSequence<Base> where Base : Sequence

在 Swift 中,enumerated() 是一个用于遍历集合类型的方法,它返回一个由每个元素的索引和值组成的元组。

常用的使用方式 (或使用场景)

  1. 遍历数组并获取元素的索引和值:
swift 复制代码
let array = ["apple", "banana", "orange"]
for (index, value) in array.enumerated() {
    print("Index: \(index), Value: \(value)")
}

输出:

复制代码
Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: orange
  1. 使用 map() 方法将数组中的元素转换为元组:
swift 复制代码
let array = ["apple", "banana", "orange"]
let enumeratedArray = array.enumerated().map { (index, value) in
    return (index: index, fruit: value)
}
print(enumeratedArray)

输出:

复制代码
[(index: 0, fruit: "apple"), (index: 1, fruit: "banana"), (index: 2, fruit: "orange")]
  1. 使用 filter() 方法过滤数组中的元素:
swift 复制代码
let array = ["apple", "banana", "orange"]
let filteredArray = array.enumerated().filter { (index, value) in
    return index % 2 == 0
}.map { (index, value) in
    return value
}
print(filteredArray)

输出:

复制代码
["apple", "orange"]

在这个例子中,我们使用 filter() 方法过滤了索引为偶数的元素,并使用 map() 方法将结果转换为一个只包含值的数组。

相关推荐
东坡肘子4 天前
SPI 加入 Apple,Swift 迈向自举 -- 肘子的 Swift 周报 #142
人工智能·swiftui·swift
东坡肘子11 天前
Swift 还让你 Excited 吗?-- 肘子的 Swift 周报 #141
人工智能·swiftui·swift
sweet丶13 天前
Swift 元编程-Macro
swift
影寂ldy17 天前
WinForm PictureBox控件 + ImageList组件 完整笔记
开发语言·笔记·swift
Deepzz18 天前
macOS 上调教第三方鼠标的一些经验:从滚动顺滑到输入法自动切换
macos·swift·鼠标
东坡肘子18 天前
WWDC 26:AI 帮你看完了,然后呢?-- 肘子的 Swift 周报 #140
人工智能·swiftui·swift
大熊猫侯佩19 天前
SwiftData 迁移深度指南:从入门到“填坑”(下集)
数据库·swift·编程语言
大熊猫侯佩19 天前
SwiftData 迁移深度指南:从入门到“填坑”(上集)
数据库·swift·编程语言
多彩电脑19 天前
SwiftUI的导航界面的嵌套问题
开发语言·swift·设计语言
wjm04100619 天前
ios内存管理
ios·objective-c·swift·客户端开发