Menu
CoddyTech

Câu lệnh match

Thuộc phần Kiến thức nền tảng trong hành trình GDScript của Coddy. Bài học 30 trên 92.

Câu lệnh match so sánh một giá trị với danh sách mẫu rồi chạy khối lệnh của mẫu đầu tiên khớp. Câu lệnh này thay thế chuỗi dài gồm if/elif dùng để so sánh cùng một biến:

var day := 3
match day:
	1:
		print("Monday")
	2, 3:
		print("Midweek")
	_:
		print("Other day")

Lệnh này in ra Midweek.

  • Mỗi mẫu kết thúc bằng dấu hai chấm, và code của mẫu được thụt lề sâu hơn một cấp
  • Nhiều giá trị phân tách bằng dấu phẩy dùng chung một khối lệnh: 2, 3:
  • _ là ký tự đại diện: nó khớp với mọi giá trị, vì vậy nó đứng cuối, giống như else

Chỉ khối lệnh khớp đầu tiên được chạy. GDScript không chuyển sang mẫu tiếp theo, nên bạn không cần viết break. Nếu không có mẫu nào khớp và cũng không có _, thì không có gì được chạy.

Các mẫu cũng có thể là chuỗi (string):

var weapon := "bow"
match weapon:
	"sword":
		print("Melee")
	"bow", "crossbow":
		print("Ranged")
	_:
		print("Unknown")
challenge icon

Thử thách

Dễ

Biến season chứa tên một mùa. Viết câu lệnh match để in ra một hoạt động tương ứng:

  • "Spring": in ra Go hiking
  • "Summer": in ra Go swimming
  • "Fall" hoặc "Autumn": in ra Go apple picking (một mẫu khớp với cả hai giá trị)
  • "Winter": in ra Go skiing
  • Mọi giá trị khác: in ra Stay home

Viết đủ tất cả các trường hợp. Khi season được đặt thành "Autumn", đầu ra là:

Go apple picking

Tự làm thử

extends Node

func _ready():
	var season := "Autumn"
	# Viết câu lệnh match bên dưới
	pass
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch GDScript online