Sprawdzanie przynależności
Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 10 z 78.
Sprawdzasz już przynależność za pomocą in i not in: "cat" in pets wyszukuje element tablicy, a "ell" in "hello" tekst w ciągu znaków. Trzy inne przypadki pojawiają się bardzo często.
W słowniku operator in sprawdza tylko klucze. Aby wyszukać wartość, sprawdź tablicę zwracaną przez values():
var grades := {"Alice": 85, "Bob": 90}
print("Alice" in grades)
print(90 in grades)
print(90 in grades.values())true
false
truePrzynależność porównuje również typy. Tekst odczytany za pomocą OS.read_string_from_stdin() jest ciągiem znaków, a ciąg "90" nie jest liczbą całkowitą 90:
var scores := [70, 90]
print("90" in scores)
print(int("90") in scores)false
trueStała tablica dozwolonych wartości z użyciem in zastępuje długi łańcuch or i działa również w warunku ochronnym:
const DIRECTIONS = ["north", "south", "east", "west"]
var dir := "west"
match dir:
var d when d in DIRECTIONS:
print("Going ", d)
_:
print("You cannot go there")Going westWyzwanie
ŁatwyProgram ma tablicę names zawierającą uczniów z klasy oraz słownik grades zawierający uczniów, którzy mają już ocenę. Wczytuje imię ucznia do student i ocenę do grade (jako tekst).
Wypisz trzy wiersze:
NAME is in the class.lubNAME is not in the class., sprawdzającnamesNAME has a grade.lubNAME has no grade., sprawdzając klucze słownikagradesSomeone scored GRADE.lubNobody scored GRADE., sprawdzając wartości słownikagrades
Zastąp NAME i GRADE danymi wejściowymi. Dla danych wejściowych Dana i 85 wynikiem jest:
Dana is in the class.
Dana has no grade.
Someone scored 85.Spróbuj swoich sił
extends Node
func _ready():
var names := ["Alice", "Bob", "Charlie", "Dana"]
var grades := {"Alice": 85, "Bob": 90, "Charlie": 78}
var student := OS.read_string_from_stdin()
var grade := OS.read_string_from_stdin()
# Wypisz trzy linie
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 studenta3Tablice 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