数组切片
本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 73 课,共 92 课。
slice() 方法会返回一个包含部分元素的新数组。slice(begin, end) 会从索引 begin 开始取元素,直到索引 end,但不包括索引 end 处的元素:
var numbers := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers.slice(2, 6))[2, 3, 4, 5]如果不写 end,切片会一直延伸到数组末尾:
print(numbers.slice(5))[5, 6, 7, 8, 9]负索引从末尾开始计数。slice(-3) 会取出最后三个元素,slice(0, -2) 会取出除最后两个元素以外的所有元素:
print(numbers.slice(-3))
print(numbers.slice(0, -2))[7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7]第三个参数 step 用于按间隔 n 个元素取值。slice(1, 8, 2) 会取索引 1、3、5 和 7:
print(numbers.slice(1, 8, 2))[1, 3, 5, 7]slice() 不会更改原数组:numbers 仍然包含全部 10 个元素。
挑战
简单程序会将一行以逗号分隔的项目读入数组 items(已写好)。使用 slice() 打印数组中间部分:
- 如果项目数量是奇数,打印中间项以及两侧各一项(共 3 项;如果只有一项,就打印该项)
- 如果是偶数,打印中间的两项
对于 apple,banana,orange,grape,输出为 ["banana", "orange"];对于 a,b,c,d,e,输出为 ["b", "c", "d"]。
亲手试试
extends Node
func _ready():
var items := OS.read_string_from_stdin().split(",")
# 输出中间的项
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: GDScript 在线编译器