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()zwracatrue, jeśli funkcja zwracatruedla co najmniej jednego elementu.all()zwracatrue, jeśli funkcja zwracatruedla 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
falseJeden 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")Wyzwanie
ŁatwyProgram odczytuje jeden wiersz z wynikami oddzielonymi przecinkami i zapisuje je w tablicy numbers. Ta część jest już napisana.
Wypisz dwa wiersze:
Any perfect:po którym następujetrue, jeśli co najmniej jeden wynik to100, w przeciwnym raziefalseAll passed:po którym następujetrue, jeśli każdy wynik wynosi50lub więcej, w przeciwnym raziefalse
Użyj any() w pierwszym wierszu i all() w drugim. Dla danych wejściowych 100,75,40 wynik to:
Any perfect: true
All passed: falseSpró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()
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
1Łańcuchy znaków — zagadnienia zaawansowane
Metody łańcuchów znakówWyszukiwanie w łańcuchach znakówZastępowanie i przycinanieDzielenie i łączeniePodsumowanie — sprawdzanie nazwy użytkownika4Słowniki, część 2
Zagnieżdżone słownikiTablice słownikówŁączenie słownikówKopiowanie słownikówPodsumowanie – licznik częstotliwości7Typy wyliczeniowe
Czym jest typ wyliczeniowy?Definiowanie typu wyliczeniowegoWartości typu wyliczeniowegoTypy wyliczeniowe w matchPowtórka – sygnalizacja świetlna10Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Powtórka — sortowanie za pomocą lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Powtórka — sumowanie zagnieżdżonej tablicy13System zarządzania zapasami
Omówienie projektuDodawanie produktu2Zaawansowane podejmowanie decyzji
Dopasowanie ze zmiennymiStrażnicy dopasowaniaWzorce tablicWzorce słownikówSprawdzanie przynależnościPowtórka — parser poleceń5Aplikacja książki kontaktów
Wyświetlanie menuDodawanie kontaktu8Menedżer danych studentów
Przegląd projektuDodaj studenta11Funkcje wyższego rzędu
Metoda mapMetoda filterMetoda reduceany i allPowtórka — walidator adresów e-mailPowtórka — przetwarzanie liczb3Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DTablice postrzępioneTypowe wzorce tablic 2DPodsumowanie — plansza do gry6Zbiory ze słownikami
Czym jest zbiór?Słownik jako zbiórDodawanie i usuwanieSuma i część wspólnaRóżnica zbiorówPowtórka – usuwanie duplikatów9Zaawansowana agregacja danych
Sumowanie wartościZnajdowanie minimum i maksimumSortowanie niestandardowePodsumowanie – Sortownik słownikówPoćwicz samodzielnie: Kompilator GDScript online