Wzorce tablic
Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 8 z 78.
Wzorzec tablicy zapisuje się tak jak literał tablicy. Dopasowuje tablicę o tym samym rozmiarze, której elementy dopasowują się pojedynczo. Każdy element wzorca może być literałem, _ lub wiązaniem:
var point := [0, 7]
match point:
[0, 0]:
print("Origin")
[0, var y]:
print("On the y-axis at ", y)
[var x, var y]:
print("Point ", x, ", ", y)On the y-axis at 7Rozmiar musi być taki sam: [var x, var y] nie pasuje do [1, 2, 3]. Umieść .. jako ostatni element, aby dopuścić dowolną liczbę dodatkowych elementów (w tym zero), a dla pustej tablicy zapisz []:
var cmd := ["give", "sword", "Ana"]
match cmd:
[]:
print("Nothing typed")
["give", var item, ..]:
print("Giving ", item)Giving swordWarunki działają też ze wzorcami tablic: [var a, var b] when a == b: dopasowuje dwa równe elementy.
Wzorce tablic pasują tylko do typu Array. Zwracany przez split() typ PackedStringArray nigdy do nich nie pasuje. Zapisz wynik w zmiennej zadeklarowanej jako Array, co spowoduje jego konwersję:
var words: Array = "go north".split(" ")
match words:
["go", var dir]:
print("Heading ", dir)Heading northWyzwanie
ŁatwyProgram odczytuje punkt zapisany jako x,y i przechowuje go w tablicy point jako dwie liczby całkowite (jest to już napisane). Użyj instrukcji match z wzorcami tablicowymi, aby wypisać, gdzie znajduje się punkt, stosując pierwszą pasującą regułę:
- Obie wartości to
0:Origin xto0:On the y-axis at y=, a następnieyyto0:On the x-axis at x=, a następniexxiysą równe:On the diagonal at, a następnie wartość- W każdym innym przypadku:
Point at (x, y)z dwiema wartościami
Dla wejścia 0,5 wynikiem jest:
On the y-axis at y=5Dla wejścia 2,7 wynik to:
Point at (2, 7)Spróbuj swoich sił
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var point := [int(parts[0]), int(parts[1])]
# Dopasuj point do wzorców tablicowych
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