Menu
CoddyTech

So khớp với biến

Thuộc phần Logic và luồng chương trình trong hành trình GDScript của Coddy. Bài học 6 trên 78.

Trong bài học Match Statement, mọi mẫu đều là giá trị cố định, như 1: hoặc "bow":. Mẫu cũng có thể là hằng số hoặc biến: match so sánh giá trị với giá trị mà tên đó giữ khi dòng lệnh chạy:

const SECRET := 42
var guess := 42
match guess:
	SECRET:
		print("You found it!")
	_:
		print("Try again")
You found it!

Mẫu mới thứ hai là mẫu liên kết: var theo sau là một tên mới. Giống như _, mẫu này khớp với mọi giá trị, đồng thời lưu giá trị đó vào biến mới, bạn có thể dùng biến này bên trong khối lệnh:

var level := 5
match level:
	1:
		print("Tutorial")
	var n:
		print("Level %d is locked" % n)
Level 5 is locked

Mẫu liên kết hữu ích nhất khi bạn khớp kết quả của một biểu thức không có tên riêng:

var roll_a := 4
var roll_b := 6
match roll_a + roll_b:
	12:
		print("Double six!")
	var total:
		print("You rolled ", total)
You rolled 10

Mẫu binding khớp với mọi thứ, nên nó đứng cuối, như _. Tên của nó phải là tên mới: var level: trong ví dụ thứ hai sẽ gây lỗi vì level đã tồn tại. Mẫu này cũng không thể nằm cùng dòng với các mẫu khác được phân tách bằng dấu phẩy.

match so sánh kiểu dữ liệu một cách nghiêm ngặt: chuỗi "5" không khớp với mẫu 5, và số thực 5.0 cũng vậy. Hãy chuyển văn bản đọc từ đầu vào bằng int() trước khi so khớp với các số.

challenge icon

Thử thách

Dễ

Viết câu lệnh kiểm tra trò đoán số. Hằng số SECRET lưu số bí mật, còn chương trình đọc dự đoán của người chơi thành số nguyên vào guess.

Viết câu lệnh match cho guess với ba mẫu:

  • Hằng số SECRET: in ra Correct!
  • 0: in ra You gave up.
  • Mẫu liên kết cho mọi dự đoán khác: in ra dự đoán theo sau bởi is not the number.

Với đầu vào 17, đầu ra là:

17 is not the number.

Tự làm thử

extends Node

func _ready():
	const SECRET := 42
	var guess := int(OS.read_string_from_stdin())
	# Viết câu lệnh match bên dưới
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 Logic và luồng chương trình

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