Menu
CoddyTech

数组切片(第 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]
challenge icon

挑战

简单
编写一个函数 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] {
    // 在这里编写代码
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Swift 在线编辑器