0Pricing
Swift Academy · 课时

迭代模式与可变性

学习遍历数组、字典和集合的常见迭代模式,使用索引和 enumerated(),并理解 let 与 var 下的可变性(写时复制基础)。

迭代模式与可变性 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 3 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 3 节课。

为什么要遍历和考虑可变性?

目标:安全而清晰地遍历集合,并了解集合何时可变。本课将介绍数组、字典、集合、索引和 enumerated(),以及常量与变量的区别。

按元素遍历(数组)

按元素遍历会直接遍历元素;对于数组而言,这种方式简单明了。

let nums = [10, 20, 30]
for n in nums {
    print("value:", n)
}

enumerated()

请使用 enumerated() 在遍历过程中获取(索引,值)对。

let letters = ["a","b","c"]
for (i, ch) in letters.enumerated() {
    print(i, ch)   // 0 a, 1 b, 2 c
}

字典与集合

字典会产生(键,值)对。集合是无序的;请使用排序操作获得稳定的输出。

let ages = ["Ada": 20, "Bob": 25]
for (name, age) in ages {
    print(name, age)
}

let colors: Set<String> = ["red", "green", "blue"]
for c in colors.sorted() {       // sort for stable order
    print(c)
}

索引与切片

请使用 startIndex、endIndex 和后继索引操作进行基于索引的访问。切片是 ArraySlice 视图。

let arr = [5,6,7,8]
var i = arr.startIndex
while i < arr.endIndex {
    print("arr[", i, "] =", arr[i])
    i = arr.index(after: i)
}
let slice = arr[1...2]      // ArraySlice
print("slice", slice)

可变性与 COW

可变性:请使用变量声明,以便进行修改。集合采用写时复制机制——只有在修改之前,复制操作才不会真正产生开销。

let fixed = [1,2,3]
// fixed.append(4) // error: cannot use mutating member on immutable value

var bag = [1,2,3]
bag.append(4)           // ok
var bagCopy = bag       // COW: cheap copy until either changes
bagCopy[0] = 9
print("bag", bag, "copy", bagCopy)

可变性规则

快速检查:哪种声明可以让您修改集合?

回顾

回顾:优先按元素遍历,使用 enumerated() 获取索引和值,为了有序而对集合排序,使用字符串/数组索引进行导航,并且只有使用变量(同时注意 COW)时才能修改集合。

常见问题解答

「迭代模式与可变性」课时是免费的吗?

是的 — 「迭代模式与可变性」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 3 节课。

「迭代模式与可变性」这节课中我会学到什么?

学习遍历数组、字典和集合的常见迭代模式,使用索引和 enumerated(),并理解 let 与 var 下的可变性(写时复制基础)。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Swift Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 3 节。

「迭代模式与可变性」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Swift Academy 课中编写并运行代码吗?

能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 数组、字典与集合
  2. 集合——成员关系与运算
  3. 迭代模式与可变性
← 返回 Swift Academy