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()restituiscetruese la funzione restituiscetrueper almeno un elemento.all()restituiscetruese la funzione restituiscetrueper 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
falseUn 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")Sfida
FacileIl programma legge una riga di punteggi separati da virgole e li memorizza nell'array numbers. Questa parte è già scritta.
Stampa due righe:
Any perfect:seguito datruese almeno un punteggio è100, altrimentifalseAll passed:seguito datruese ogni punteggio è pari o superiore a50, altrimentifalse
Usa any() per la prima riga e all() per la seconda. Per l'input 100,75,40, l'output è:
Any perfect: true
All passed: falseProvalo 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()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Stringhe in dettaglio
Metodi delle stringheRicerca nelle stringheSostituzione e trimDividere e unireRipasso - verifica del nome utente4Dizionari - Parte 2
Dizionari annidatiArray di dizionariUnire dizionariCopiare dizionariRiepilogo - Contatore di frequenza7Enumerazioni
Che cos'è un'enumerazione?Definire un'enumerazioneValori dell'enumerazioneEnumerazioni in MatchRiepilogo - Semaforo10Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di un array annidato13Sistema di gestione dell'inventario
Panoramica del progettoAggiungere un articolo2Decisioni avanzate
Match con variabiliGuardie di matchPattern per arrayPattern per dizionariVerifiche di appartenenzaRiepilogo - Parser di comandi5Applicazione Rubrica
Visualizzare il menuAggiungere un contatto8Gestione dei registri degli studenti
Panoramica del progettoAggiungi studente11Funzioni di ordine superiore
Il metodo mapIl metodo filterIl metodo reduceany e allRipasso - Validatore di emailRipasso - Elaboratore di numeri3Array multidimensionali
Fondamenti degli array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DRipasso - Array 2DArray frastagliatiSchemi comuni con gli array 2DRipasso - Tabellone di gioco6Insiemi con i dizionari
Che cos'è un insieme?Il dizionario come insiemeAggiungere e rimuovereUnione e intersezioneDifferenza tra insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Somma dei valoriTrovare minimo e massimoOrdinamento personalizzatoRiepilogo - Ordinatore di dizionariEsercitati da solo: Compilatore GDScript online