Menu
CoddyTech

枚举方法

本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 70 课,共 86 课。

有时遍历数组时,你不仅需要知道元素,还需要知道它的位置。虽然你可以用计数器变量手动跟踪索引,但 Swift 提供了更简洁的解决方案:enumerated() 方法。

在数组上调用 enumerated() 时,它会返回一个元组序列,其中每个元组都包含索引和元素:

let colors = ["Red", "Green", "Blue"]

for (index, color) in colors.enumerated() {
    print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue

注意,我们在循环中直接使用 (index, color) 解构每个元组。这样就能访问这两个值,无需编写额外代码。

当你需要显示编号列表或执行依赖元素位置的操作时,这尤其有用:

let tasks = ["Wake up", "Exercise", "Eat breakfast"]

for (index, task) in tasks.enumerated() {
    print("Task \(index + 1): \(task)")
}
// 任务 1:起床
// 任务 2:锻炼
// 任务 3:吃早餐

与手动管理单独的计数器变量相比,enumerated() 方法能让你的代码更简洁易读。

challenge icon

挑战

简单
编写一个函数 formatWithPositions,它接收 items,并返回一个格式化字符串,其中显示每个元素及其位置编号。

使用 enumerated() 方法遍历数组,并构建一个字符串,为每个元素添加从 1 开始的位置编号作为前缀。

逻辑:

  1. 使用 enumerated() 遍历数组
  2. 为每个元素创建一个格式为 "position. item" 的字符串(编号从 1 开始)
  3. 使用换行符(\n)连接所有格式化后的字符串

参数:

  • items([String]):要格式化的字符串数组

返回值:一个字符串,每个元素单独占一行,并以其位置编号作为前缀(String)。格式:"1. item1\n2. item2\n3. item3"

示例:如果 items 是 ["Apple", "Banana", "Cherry"],函数应返回:

"1. Apple\n2. Banana\n3. Cherry"

注意:如果数组为空,则返回空字符串 ""。

亲手试试

func formatWithPositions(items: [String]) -> String {
    // 在这里编写代码
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Swift 在线编辑器