Menu
CoddyTech

排序与反转

本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 76 课,共 92 课。

sort() 会将数组中的元素按升序排列。它会直接修改数组:

var scores := [5, 1, 9, 3]
scores.sort()
print(scores)
[1, 3, 5, 9]

sort() 不会返回任何内容,所以 print(scores.sort()) 是错误的。先排序,再打印。

字符串按字母顺序排序,大写字母排在小写字母前面:["bob", "Cleo", "ana"] 会变成 ["Cleo", "ana", "bob"]。

reverse() 会反转数组当前的顺序,而不会对数组进行排序。要按降序排序,先排序,再反转:

var hp := [7, 2, 9, 4]
hp.reverse()
print(hp)
hp.sort()
hp.reverse()
print(hp)
[4, 9, 2, 7]
[9, 7, 4, 2]

将数组赋给另一个变量并不会复制数组:两个变量会使用同一个数组,对其中一个数组排序也会对另一个数组排序。若要保留原来的顺序,请使用 duplicate() 创建副本并对副本排序:

var original := [5, 3, 9]
var sorted_copy := original.duplicate()
sorted_copy.sort()
print(original, " ", sorted_copy)
[5, 3, 9] [3, 5, 9]
challenge icon

挑战

简单

程序会将一行以逗号分隔的整数读入 numbers(已写好)。打印三行:

  1. Original: 和按原始顺序排列的数字
  2. Ascending: 和按从小到大排序的数字
  3. Descending: 和按从大到小排序的数字

对于输入 5,3,9,1,输出为:

Original: [5, 3, 9, 1]
Ascending: [1, 3, 5, 9]
Descending: [9, 5, 3, 1]

亲手试试

extends Node

func _ready():
	var parts := OS.read_string_from_stdin().split(",")
	var numbers: Array[int] = []
	for part in parts:
		numbers.append(int(part))
	# 在下方编写你的代码
quiz icon自我测试

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

基础知识中的所有课

自己练习: GDScript 在线编译器