Menu
CoddyTech

数组切片

本课属于 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 个元素。

challenge icon

挑战

简单

程序会将一行以逗号分隔的项目读入数组 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(",")
	# 输出中间的项
quiz icon自我测试

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

基础知识中的所有课

自己练习: GDScript 在线编译器