Menu
CoddyTech

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")
challenge icon

挑战

简单

变量 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
quiz icon自我测试

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

基础知识中的所有课

自己练习: GDScript 在线编译器