单侧范围
为切片表示无明确起止点的范围。
单侧范围 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
什么是单侧范围
单侧范围省略一个边界。它最常用于从某个位置开始或截取到某个位置为止的集合切片。
let letters = ["a", "b", "c", "d", "e"]
let tail = letters[2...]
print(Array(tail))从某个索引开始
arr[2...] 表示“从索引 2 到末尾”。起始索引包含在内。
let nums = [10, 20, 30, 40]
print(Array(nums[1...]))截取到某个索引之前
arr[..<3] 表示“从开头开始,直到索引 3 之前”,不包含索引 3。
let nums = [10, 20, 30, 40]
print(Array(nums[..<3]))截取到某个索引
arr[...2] 表示“从开头开始直到索引 2”,包含索引 2。
let nums = [10, 20, 30, 40]
print(Array(nums[...2]))切片共享索引
切片会保留原始索引。arr[2...] 的第一个元素仍位于索引 2,而不是索引 0。
let nums = [10, 20, 30, 40]
let slice = nums[2...]
print(slice.startIndex)
print(slice[2])转换切片
若要从 0 重新编号或获得一个独立数组,请将切片包装在 Array(...) 中。
let nums = [10, 20, 30, 40]
let rest = Array(nums[1...])
print(rest[0])单侧范围用于模式匹配
单侧范围也可以用作切换语句的模式:case 18... 会匹配 18 及以上的值。
let age = 70
switch age {
case ..<18:
print("Minor")
case 18...:
print("Adult")
default:
print("?")
}下界单侧模式
case ..<0 会匹配所有小于零的值,适合捕获负数。
let value = -3
switch value {
case ..<0:
print("negative")
case 0:
print("zero")
default:
print("positive")
}字符串前缀
单侧范围与字符串索引搭配使用时,也可以对字符串进行切片。这里通过切片去掉第一个字符。
let word = "Swift"
let chars = Array(word)
let rest = chars[1...]
print(String(rest))组合切片
您可以使用两个单侧切片取得数组的 head 和 tail。
let data = [1, 2, 3, 4, 5, 6]
let head = Array(data[..<2])
let tail = Array(data[4...])
print(head)
print(tail)安全地进行切片
超出边界进行切片会导致崩溃,因此当索引来自输入时,请先对索引进行保护。
let nums = [1, 2, 3]
let start = 1
if start < nums.count {
print(Array(nums[start...]))
}快速检查
测试单侧范围。
回顾:单侧范围
像 arr[2...]、arr[..<3] 和 arr[...2] 这样的单侧范围,可以从某个位置开始或截取到某个位置。切片会保留 original 索引,因此请使用 Array(...) 重新编号。它们也可以用作切换语句的模式。
let a = [1, 2, 3, 4]
print(Array(a[2...]))常见问题解答
「单侧范围」课时是免费的吗?
是的 — 「单侧范围」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「单侧范围」这节课中我会学到什么?
为切片表示无明确起止点的范围。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「单侧范围」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。