枚举方法
本课属于 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() 方法能让你的代码更简洁易读。
挑战
简单编写一个函数 formatWithPositions,它接收 items,并返回一个格式化字符串,其中显示每个元素及其位置编号。
使用 enumerated() 方法遍历数组,并构建一个字符串,为每个元素添加从 1 开始的位置编号作为前缀。
逻辑:
- 使用
enumerated()遍历数组 - 为每个元素创建一个格式为
"position. item"的字符串(编号从 1 开始) - 使用换行符(
\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 {
// 在这里编写代码
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Swift 在线编辑器