数组切片(第 1 部分)
本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 73 课,共 86 课。
有时你不需要整个数组,只需要其中一部分。Swift 可以通过范围运算符轻松提取数组中的一部分元素,这叫作数组切片。
要获取切片,你可以在下标方括号中使用范围。最常见的方法是使用左闭右开范围运算符(..<),它包含起始索引,但不包含结束索引:
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]这里,1..<4 会给出索引为 1、2 和 3 的元素,但不包括索引 4 的元素。当你确切知道要在哪里停止时,这很有用。
如果你想包含结束索引,请使用闭区间运算符(...):
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]有一点很重要:切片的结果是 ArraySlice,而不是普通的 Array。如果你需要一个真正的数组,可以用 Array() 将它包装起来:
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]挑战
简单编写一个函数 getMiddleElements,它接收 numbers、start 和 end,并返回数组中从起始索引到结束索引(不包括结束索引)的切片。
使用半开区间运算符(..<)提取指定部分,并将其作为普通数组返回。
参数:
numbers([Int]):要切片的数组start(Int):起始索引(包含)end(Int):结束索引(不包含)
返回值:包含从起始索引到结束索引(不包括结束索引)这些元素的数组([Int])
示例:如果 numbers 是 [10, 20, 30, 40, 50, 60],start 是 1,end 是 4,那么函数应返回 [20, 30, 40]。
亲手试试
func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
// 在这里编写代码
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Swift 在线编辑器