prefix、suffix 与 dropFirst
以声明式方式获取集合的一部分。
prefix、suffix 与 dropFirst 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
prefix(n)
prefix(n) 返回前 n 个元素组成的切片。即使 n 大于数组长度,也能安全使用。
let arr = [1, 2, 3, 4, 5]
print(Array(arr.prefix(3)))
print(Array(arr.prefix(99)))suffix(n)
suffix(n) 返回最后 n 个元素组成的切片,同样会安全地限制范围。
let arr = [1, 2, 3, 4, 5]
print(Array(arr.suffix(2)))
print(Array(arr.suffix(0)))dropFirst
dropFirst() 会丢弃第一个元素;dropFirst(n) 会丢弃前 n 个元素。
let arr = [10, 20, 30, 40]
print(Array(arr.dropFirst()))
print(Array(arr.dropFirst(2)))dropLast
dropLast() 会从末尾移除元素。与其他方法一样,它返回一个切片。
let arr = [10, 20, 30, 40]
print(Array(arr.dropLast()))
print(Array(arr.dropLast(3)))全部返回切片
这些方法中的每一个都返回 ArraySlice,而不是新数组。需要具体数组时再进行转换。
let arr = [1, 2, 3, 4]
let s = arr.prefix(2)
print(type(of: s))对较大的 n 也安全
与使用超出范围的下标范围不同,这些方法不会崩溃。请求的数量超过现有元素时,只会返回可用的元素。
let arr = [1, 2]
print(Array(arr.prefix(10)))
print(Array(arr.dropFirst(10)))prefix(while:)
prefix(while:) 会从开头获取元素,只要条件成立就继续,条件不成立时停止。
let arr = [2, 4, 6, 7, 8]
let evensAtStart = arr.prefix(while: { $0 % 2 == 0 })
print(Array(evensAtStart))drop(while:)
drop(while:) 会在条件成立时跳过开头的元素,并返回其余部分。
let arr = [2, 4, 6, 7, 8]
let rest = arr.drop(while: { $0 % 2 == 0 })
print(Array(rest))组合方法
您可以将这些方法链接起来,简洁地表达切片操作,例如获取除第一个和最后一个元素之外的所有元素。
let arr = [10, 20, 30, 40, 50]
let middle = arr.dropFirst().dropLast()
print(Array(middle))查看与弹出模式
使用 first 查看第一个元素,使用 dropFirst() 获取剩余部分,这是处理列表时常见的函数式模式。
let queue = [100, 200, 300]
if let head = queue.first {
let tail = Array(queue.dropFirst())
print("head:", head, "tail:", tail)
}意图清晰
与手动指定范围相比,这些方法能更好地表达意图。arr.suffix(3) 比 arr[(arr.count-3)...] 更清晰。
let arr = [1, 2, 3, 4, 5, 6]
print(Array(arr.suffix(3)))快速检查
测试 prefix 和 drop 的行为。
回顾
prefix(n) 和 suffix(n) 从两端获取元素;dropFirst 和 dropLast 从两端移除元素。它们都返回切片,并且对超出大小的数量安全。prefix(while:) 和 drop(while:) 使用谓词。
let arr = [1, 2, 3, 4, 5]
print(Array(arr.prefix(2)), Array(arr.suffix(2)), Array(arr.dropFirst()))用 AI 导师学习 Swift — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 122
- 课程
- 409
常见问题解答
「prefix、suffix 与 dropFirst」课时是免费的吗?
是的 — 「prefix、suffix 与 dropFirst」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「prefix、suffix 与 dropFirst」这节课中我会学到什么?
以声明式方式获取集合的一部分。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「prefix、suffix 与 dropFirst」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用范围创建切片
- ArraySlice 的索引语义
- 将切片转换回数组
- prefix、suffix 与 dropFirst