Menu
CoddyTech

Pattern per array

Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 8 di 78.

Un pattern array si scrive come un letterale array. Corrisponde a un array della stessa dimensione, i cui elementi corrispondono uno a uno. Ogni elemento del pattern può essere un letterale, _ o un'associazione:

var point := [0, 7]
match point:
	[0, 0]:
		print("Origin")
	[0, var y]:
		print("On the y-axis at ", y)
	[var x, var y]:
		print("Point ", x, ", ", y)
On the y-axis at 7

La dimensione deve essere la stessa: [var x, var y] non corrisponde a [1, 2, 3]. Metti .. come ultimo elemento per consentire un qualsiasi numero di elementi aggiuntivi (zero incluso) e scrivi [] per un array vuoto:

var cmd := ["give", "sword", "Ana"]
match cmd:
	[]:
		print("Nothing typed")
	["give", var item, ..]:
		print("Giving ", item)
Giving sword

Le condizioni di guardia funzionano anche con i pattern di array: [var a, var b] when a == b: corrisponde a due elementi uguali.

I pattern degli array corrispondono solo al tipo Array. Il PackedStringArray restituito da split() non corrisponde mai. Memorizza il risultato in una variabile dichiarata come Array, che lo converte:

var words: Array = "go north".split(" ")
match words:
	["go", var dir]:
		print("Heading ", dir)
Heading north
challenge icon

Sfida

Facile

Il programma legge un punto scritto come x,y e lo memorizza nell’array point come due numeri interi (già scritto). Usa un’istruzione match con pattern di array per stampare dove si trova il punto, usando la prima regola applicabile:

  • Entrambi sono 0: Origin
  • x è 0: On the y-axis at y= seguito da y
  • y è 0: On the x-axis at x= seguito da x
  • x e y sono uguali: On the diagonal at seguito dal valore
  • Qualsiasi altro caso: Point at (x, y) con i due valori

Per l’input 0,5, l’output è:

On the y-axis at y=5

Per l’input 2,7, è:

Point at (2, 7)

Provalo tu

extends Node

func _ready():
	var parts := OS.read_string_from_stdin().split(",")
	var point := [int(parts[0]), int(parts[1])]
	# Confronta point con i pattern degli array
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore GDScript online