Menu
CoddyTech

any e all

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

any() e all() pongono una domanda sì o no su un intero array. Entrambi accettano una funzione che restituisce true o false per un elemento:

  • any() restituisce true se la funzione restituisce true per almeno un elemento.
  • all() restituisce true se la funzione restituisce true per ogni elemento.
var enemy_hp = [30, 0, 12]
print(enemy_hp.any(func(hp): return hp == 0))
print(enemy_hp.all(func(hp): return hp > 0))
true
false

Un nemico ha 0 HP, quindi any() è true, e quello stesso nemico rende all() false.

Entrambi si fermano non appena si conosce la risposta: any() al primo true, all() al primo false. Funzionano anche con funzioni con nome, come numbers.all(is_even).

Su un array vuoto, any() restituisce false, perché nessun elemento supera il controllo, e all() restituisce true, perché nessun elemento fallisce.

Usali in una condizione al posto di un ciclo con una variabile flag:

var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
	print("The door opens")
challenge icon

Sfida

Facile

Il programma legge una riga di punteggi separati da virgole e li memorizza nell'array numbers. Questa parte è già scritta.

Stampa due righe:

  1. Any perfect: seguito da true se almeno un punteggio è 100, altrimenti false
  2. All passed: seguito da true se ogni punteggio è pari o superiore a 50, altrimenti false

Usa any() per la prima riga e all() per la seconda. Per l'input 100,75,40, l'output è:

Any perfect: true
All passed: false

Provalo tu

extends Node

func _ready():
	var numbers := []
	for part in OS.read_string_from_stdin().split(","):
		numbers.append(int(part))
	# Stampa le due righe con any() e all()
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