Menu
CoddyTech

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() devuelve true si la función devuelve true para al menos un elemento.
  • all() devuelve true si la función devuelve true para 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
false

Un 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")
challenge icon

Desafío

Fácil

El 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:

  1. Any perfect: seguido de true si al menos una puntuación es 100; de lo contrario, false
  2. All passed: seguido de true si todas las puntuaciones son 50 o 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: false

Prué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()
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 Lógica y flujo

Practica por tu cuenta: Compilador de GDScript online