Menu
CoddyTech

Guard pada Match

Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 7 dari 78.

Guard menambahkan kondisi pada sebuah pola. Tulis when dan sebuah kondisi setelah pola: pola hanya cocok jika nilainya sesuai dengan pola dan kondisinya true. Guard tersedia sejak Godot 4.4.

var hp := 15
match hp:
	0:
		print("Defeated")
	var h when h < 20:
		print("Low health: ", h)
	_:
		print("Healthy")
Low health: 15

GDScript tidak memiliki pola rentang seperti 1..10. Pola pengikatan dengan guard dapat digunakan untuk itu: var h when h < 20: cocok dengan setiap nilai di bawah 20 dan menamainya h.

Jika guard bernilai false, match akan melanjutkan ke pola berikutnya. Pola dicoba dari atas ke bawah, jadi urutannya menentukan blok mana yang dijalankan:

var temp := 32
match temp:
	var t when t <= 0:
		print("Freezing")
	var t when t < 15:
		print("Cold")
	var t when t < 30:
		print("Warm")
	_:
		print("Hot")
Hot

Pola kedua tidak memerlukan t > 0: suhu 0 atau di bawahnya sudah cocok dengan pola pertama. Guard dapat menggunakan kondisi apa pun, dengan variabel lain dan and atau or, serta dapat digunakan dengan pola apa pun: 5 when hard_mode: hanya cocok dengan 5 saat hard_mode bernilai true.

challenge icon

Tantangan

Mudah

Program membaca usia sebagai bilangan bulat ke dalam age. Gunakan pernyataan match dengan guard untuk mencetak kelompok usia:

  • 0 sampai 12: Child
  • 13 sampai 19: Teenager
  • 20 sampai 64: Adult
  • 65 sampai 120: Senior
  • Angka lainnya: Invalid age

Setiap rentang mencakup kedua batasnya. Untuk input 15, outputnya adalah:

Teenager

Coba sendiri

extends Node

func _ready():
	var age := int(OS.read_string_from_stdin())
	# Cetak kelompok usia menggunakan match dan kondisi penjaga
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler GDScript online