Menu
Coddy logo textTech

Czym jest metatabela?

Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 16 z 54.

Metatablica to po prostu zwykła tablica Lua, ale pełni specjalną funkcję. Gdy dołączysz metatablicę do innej tablicy (nazwijmy ją „główną”), możesz zmienić sposób, w jaki ta główna tablica zachowuje się podczas wykonywania na niej określonych operacji.

Pomyśl o tym w ten sposób: zwykle, jeśli spróbujesz dodać do siebie dwie tablice za pomocą operatora +, Lua nie będzie wiedzieć, co zrobić, i zwróci błąd. Dzięki metatabeli możesz jednak określić, co oznacza dodawanie tablic. Możesz sprawić, że będzie dodawać odpowiadające sobie wartości, łączyć ich zawartość albo robić cokolwiek innego, co ma sens w Twoim programie.

Metatablice działają dzięki definiowaniu specjalnych funkcji zwanych metametodami. Metametody te mają określone nazwy zaczynające się od dwóch znaków podkreślenia, takich jak __add dla dodawania lub __index do wyszukiwania brakujących kluczy. Gdy Lua napotyka operację na tabeli, która ma metatablicę, sprawdza, czy metatablica zawiera odpowiadającą jej metametodę, i używa jej, aby ustalić, co powinno się wydarzyć.

Ta koncepcja otwiera możliwości, takie jak tworzenie niestandardowych typów danych z własnymi zachowaniami, implementowanie wzorców obiektowych, ochrona tabel przed niepożądanymi modyfikacjami i wiele więcej. W kolejnych lekcjach nauczysz się dołączać metatabele do tabel i używać metametod, aby dostosowywać ich zachowanie.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

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 Lua online