any y all
Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 63 de 78.
any() y all() plantean una pregunta de sí o no sobre un array completo. Ambas reciben una función que devuelve true o false para un elemento:
any()devuelvetruesi la función devuelvetruepara al menos un elemento.all()devuelvetruesi la función devuelvetruepara todos los elementos.
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 enemigo tiene 0 HP, así que any() es true, y ese mismo enemigo hace que all() sea false.
Ambas se detienen en cuanto se conoce la respuesta: any() al primer true, all() al primer false. También funcionan con funciones con nombre, como numbers.all(is_even).
En un array vacío, any() devuelve false, porque ningún elemento cumple la condición, y all() devuelve true, porque ningún elemento la incumple.
Úsalos en una condición en lugar de un bucle con una variable de indicador:
var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
print("The door opens")Desafío
FácilEl programa lee una línea de puntuaciones separadas por comas y las almacena en el array numbers. Esta parte ya está escrita.
Imprime dos líneas:
Any perfect:seguido detruesi al menos una puntuación es100; de lo contrario,falseAll passed:seguido detruesi todas las puntuaciones son50o más; de lo contrario,false
Usa any() para la primera línea y all() para la segunda. Para la entrada 100,75,40, la salida es:
Any perfect: true
All passed: falsePruébalo tú mismo
extends Node
func _ready():
var numbers := []
for part in OS.read_string_from_stdin().split(","):
numbers.append(int(part))
# Imprime las dos líneas usando any() y all()
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Cadenas de texto en profundidad
Métodos de cadenasBúsqueda en cadenasReemplazar y eliminar espaciosDividir y unirRepaso - Comprobación del nombre de usuario4Diccionarios, parte 2
Diccionarios anidadosArrays de diccionariosCombinar diccionariosCopiar diccionariosRepaso: contador de frecuencias7Enumeraciones
¿Qué es una enumeración?Definir una enumeraciónValores de una enumeraciónEnumeraciones en matchRepaso: semáforo10Funciones avanzadas
Devolver múltiples valoresFunciones lambda, parte 1Funciones lambda, parte 2Repaso: ordenar con lambdaFunciones recursivas, parte 1Funciones recursivas, parte 2Repaso: sumar un array anidado13Sistema de gestión de inventario
Descripción general del proyectoAñadir artículo2Toma de decisiones avanzada
Coincidencia con variablesGuardas de coincidenciaPatrones de arraysPatrones de diccionariosComprobaciones de pertenenciaRepaso: analizador de comandos5Aplicación de agenda de contactos
Mostrar menúAñadir contacto8Gestor de expedientes estudiantiles
Descripción del proyectoAgregar estudiante11Funciones de orden superior
El método mapEl método filterEl método reduceany y allRepaso - Validador de correo electrónicoRepaso - Procesador de números3Arrays multidimensionales
Conceptos básicos de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DRepaso: arrays 2DArrays irregularesPatrones comunes de arrays 2DRepaso: tablero de juego6Conjuntos con diccionarios
¿Qué es un conjunto?El diccionario como conjuntoAñadir y eliminarUnión e intersecciónDiferencia de conjuntosRepaso: eliminar duplicados9Agregación avanzada de datos
Suma de valoresCómo encontrar el mínimo y el máximoOrdenación personalizadaRepaso: organizador de diccionariosPractica por tu cuenta: Compilador de GDScript online