Podsumowanie — tabela tylko do odczytu
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 23 z 54.
Wyzwanie
ŁatwyNapisz funkcję makeReadOnly, która przyjmuje original i zwraca tylko do odczytu wersję tablicy.
Utwórz tablicę proxy z metatabelą, która umożliwia odczyt z oryginalnej tablicy, ale uniemożliwia wszelkie modyfikacje.
Logika:
- Utwórz pustą tablicę proxy
- Utwórz metatabelę z polem
__indexustawionym na oryginalną tablicę (aby umożliwić odczyt) - Dodaj do metatabeli pole
__newindex, które nic nie robi (aby blokować modyfikacje) - Dołącz metatabelę do proxy za pomocą
setmetatable() - Zwróć tablicę proxy
Parametry:
original(tablica): Tablica, którą należy chronić przed modyfikacjami
Zwraca: Tablicę proxy zapewniającą dostęp tylko do odczytu do oryginalnej tablicy (tablica)
Spróbuj swoich sił
function makeReadOnly(original)
-- Napisz kod tutaj
end
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci4Wprowadzenie do metatabel
Czym jest metatabela?setmetatable i getmetatableMetametoda __indexMetametoda __newindexMetametoda __tostringMetamეტody arytmetyczne — część 1Metamეტody arytmetyczne — część 2Podsumowanie — tabela tylko do odczytu2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoiPoćwicz samodzielnie: Kompilator Lua online