Menu
CoddyTech

Sentencia match

Parte de la sección Fundamentos del Journey de GDScript de Coddy. Lección 30 de 92.

La instrucción match compara un valor con una lista de patrones y ejecuta el bloque del primer patrón que coincida. Reemplaza una cadena larga de if/elif que compara la misma variable:

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

Esto imprime Midweek.

  • cada patrón termina con dos puntos, y su código se indenta un nivel más
  • Varios valores separados por comas comparten un bloque: 2, 3:
  • _ es el comodín: coincide con cualquier valor, así que va al final, como else

Solo se ejecuta el primer bloque que coincide. GDScript no pasa al siguiente patrón, así que no hay que escribir ningún break. Si ningún patrón coincide y no hay un _, no se ejecuta nada.

Los patrones también pueden ser cadenas:

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

Desafío

Fácil

La variable season contiene el nombre de una estación. Escribe una instrucción match que imprima una actividad para esa estación:

  • "Spring": imprime Go hiking
  • "Summer": imprime Go swimming
  • "Fall" o "Autumn": imprime Go apple picking (un patrón con ambos valores)
  • "Winter": imprime Go skiing
  • Cualquier otro valor: imprime Stay home

Escribe todos los casos. Con season establecido en "Autumn", la salida es:

Go apple picking

Pruébalo tú mismo

extends Node

func _ready():
	var season := "Autumn"
	# Escribe tu sentencia match a continuación
	pass
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de GDScript online