Match 语句
本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 30 课,共 92 课。
match 语句会将一个值与一组模式进行比较,并运行第一个匹配模式对应的代码块。它可以替代一长串比较同一个变量的 if/elif 链:
var day := 3
match day:
1:
print("Monday")
2, 3:
print("Midweek")
_:
print("Other day")这会打印 Midweek。
- 每个模式都以冒号结尾,其代码要多缩进一级
- 多个值用逗号分隔时,共用一个代码块:
2, 3: _是通配符:它可以匹配任何值,所以要放在最后,就像else一样
只有第一个匹配的分支会运行。GDScript 不会继续执行下一个模式,因此不需要写 break。如果没有模式匹配,并且没有 _,就不会运行任何内容。
模式也可以是字符串:
var weapon := "bow"
match weapon:
"sword":
print("Melee")
"bow", "crossbow":
print("Ranged")
_:
print("Unknown")挑战
简单变量 season 保存季节名称。编写一个 match 语句,为它输出一项活动:
"Spring":输出Go hiking"Summer":输出Go swimming"Fall"或"Autumn":输出Go apple picking(一个模式包含这两个值)"Winter":输出Go skiing- 其他任何值:输出
Stay home
写出所有分支。将 season 设置为 "Autumn" 时,输出为:
Go apple picking亲手试试
extends Node
func _ready():
var season := "Autumn"
# 在下面写出你的 match 语句
pass
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: GDScript 在线编译器