Menu
CoddyTech

any i all

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 63 z 78.

any() i all() zadają pytanie wymagające odpowiedzi „tak” lub „nie” dotyczące całej tablicy. Obie przyjmują funkcję, która zwraca true lub false dla jednego elementu:

  • any() zwraca true, jeśli funkcja zwraca true dla co najmniej jednego elementu.
  • all() zwraca true, jeśli funkcja zwraca true dla każdego elementu.
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

Jeden przeciwnik ma 0 HP, więc any() ma wartość true, a ten sam przeciwnik sprawia, że all() ma wartość false.

Obie funkcje kończą działanie, gdy tylko odpowiedź jest znana: any() przy pierwszej wartości true, a all() przy pierwszej wartości false. Działają też z nazwanymi funkcjami, takimi jak numbers.all(is_even).

W przypadku pustej tablicy any() zwraca false, ponieważ żaden element nie przechodzi testu, a all() zwraca true, ponieważ żaden element go nie oblewa.

Użyj ich w warunku zamiast pętli ze zmienną flagową:

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

Wyzwanie

Łatwy

Program odczytuje jeden wiersz z wynikami oddzielonymi przecinkami i zapisuje je w tablicy numbers. Ta część jest już napisana.

Wypisz dwa wiersze:

  1. Any perfect: po którym następuje true, jeśli co najmniej jeden wynik to 100, w przeciwnym razie false
  2. All passed: po którym następuje true, jeśli każdy wynik wynosi 50 lub więcej, w przeciwnym razie false

Użyj any() w pierwszym wierszu i all() w drugim. Dla danych wejściowych 100,75,40 wynik to:

Any perfect: true
All passed: false

Spróbuj swoich sił

extends Node

func _ready():
	var numbers := []
	for part in OS.read_string_from_stdin().split(","):
		numbers.append(int(part))
	# Wypisz dwa wiersze za pomocą any() i all()
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online