Skocz do zawartości
Neproify

#2 LUA SCHOOL - o tablicach słów kilka...

Rekomendowane odpowiedzi

Witajcie! Jako, że od ostatniego poradnika minęło naprawdę sporo czasu, mam zamiar trochę to nadrobić i podzielić się z wami wiedzą. Tak więc nie przedłużając - zaczynajmy.

 

1. Tablice

Jak wiecie - standardowe zmienne nie mają możliwości zapisania kilku rzeczy naraz... Ale w przyrodzie nic nie ginie - więc twórcy języków wymyślili coś, co nazywamy tablicami. Jest to nic innego, jak kilka zmiennych(indexów) w innej zmiennej(tablicy). Jako, że poradnik jest o LUA - opiszę przykłady w tym oto języku.

 

Okej. Wiecie już mniej więcej co to są tablice - lecz jak je tworzyć? Nie jest to zbyt trudna rzecz.

tablica = {}

W ten sposób "zdefiniowaliśmy" naszą tablice. Nie zawsze jest to potrzebne - ale dla czytelności kodu warto to robić. W ten też sposób można również ją czyścic - co oczywiście opisze w dalszej części poradnika.

 

2.Przypisywanie wartości do tablic

Skoro stworzyliśmy już tablice, warto coś do niej przypisać, prawda?

tablica = {}
tablica.cos = "cos w tablicy"
tablica.cosInnego = "cos innego w tablicy"

Jak widzicie nie jest to nic trudnego.

Jeśli wyświetlimy zawartość w konsoli:

print(tablica.cos)
print(tablica.cosInnego)

Ujrzymy następujący wynik:

cos w tablicy
cos innego w tablicy

Z tablic możemy korzystać również w ten sposób. Zamiast:

tablica.cos = "cos"

możemy użyć:

tablica['cos'] = "cos"

Oba przykłady są poprawne i oznaczają to samo. Warto jednak trzymać się jednego sposobu - dla czytelności kodu.

 

3. Czyszczenie tablicy

tablica.cos = "cos w tablicy"
tablica.cosInnego = "cos innego w tablicy"

Chcemy pozbyć się zawartości tablicy... Ale jak? Jak już pisałem jest jeden, prosty sposób. Wystarczy wykonać taki oto kod:

tablica = {}

W ten sposób gdy spróbujemy wyświetlić zawartość tablica.cos zobaczymy w najlepszym wypadku "nil"(czyli nic), w innym wyświetli nam błąd, jako że tablica nie istnieje. Prawda że proste?

 

Słowem zakończenia

To na tyle. Jako zadanie domowe zróbcie tablice, nastepnie wyświetlcie jej zawartość, wyczyśćcie ją i spróbujcie ponownie ją pokazać(funkcja print wyświetla to w konsoli).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@up - nie do końca, ponieważ po ponownym wykonaniu tego kodu skrypt będzie próbował zniszczyć element, który nie istnieje. Można to naprawić tak:

for _,v in ipairs ( tablica ) do
if isElement(v) then
 destroyElement ( v )
end
end

Bądź tak:

for _,v in ipairs ( tablica ) do
 destroyElement ( v )
v = nil
end

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Super, a będzie może coś o callbackach - były na LUA w Gothicu, tu chyba też są.

Tutaj są eventy - czyli robisz "hook" pod dany event, pod który podpinasz funkcje. I w sumie tyle.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×