Lua - tablice.doc

(33 KB) Pobierz

Lua - tablice

Witam w kolejnym rozdziale mojego kursu Lua! Teraz postaram przybliżyć ci idee tablic. Pewnie wiele razy spotkałeś się z tym określeniem i posiadasz w tym temacie chociaż podstawową wiedzę. Zacznę od wizualnego przybliżenia całego zagadnienia. Odpręż się, włącz swoją wyobraźnię. Wyobraź sobie, że na matematyce musisz narysować do zeszytu tabelkę tylko z jedną kolumną i umieścić w niej liczby naturalne od jednego do dziesięciu. Można powiedzieć, że to wszystko odnośnie tablic, ale jednak czas na odrobinę teorii. Tablica sama w sobie jest to zmienna, która przechowuje zmienne. Dla sprostowania wyróżniamy, tak samo jak w przypadku zmiennych tablice globalne i lokalne. Sytuacja jest taka sama jak ze zmiennymi, dlatego chyba tym razem nie muszę jej analizować. Deklaracja tablicy wygląda banalnie:

Kod:

local tbl = {}  -- pusta tablica lokalna

tbl2 = {}  -- pusta tablica globalna

Umieszczanie danych w tablicy jest bardzo proste, a wygląda to mniej więcej tak:

Kod:

local tbl = {4,"Hello world.",nil,true}

Problem pojawia się kiedy chcemy zbudować większą tabelę i umieścić w niej więcej danych. Możemy to zrobić w sposób następujący:

Kod:

local tbl = {

[1] = {},

[2] = {}

}

Jest to przykład rozbudowanej tablicy, w której możemy przechowywać dużo danych, oczywiście tabele można rozbudowywać do większych rozmiarów, ale później stają się już nieczytelne i sam autor kodu może się w nich pogubić. W tym przykładzie cyfry 1 i 2 odpowiadają indeksom tabel. Można je dowolnie zmienić na inną liczbę bądź łańcuch znaków. Tablice te nazywamy asocjacyjnymi. Zapisywać dane w tablicy możemy również tak:

Kod:

local tbl = {cost = 100, time = 14}

Teraz zajmiemy się wywoływaniem elementów tablicy, co ma swoją użyteczność w kodzie. Wywołanie danej wartości tablicy jest to nic innego jak podanie jej nazwy i jej indeksu. Zademonstrować może to mój krótki kod:

Kod:

local tbl = {1,2,3,4,5,6,7,8,9,10}

 

for i = 1, #tbl do

print(tbl[i] * 5.5)

end

Kod pobiera po kolei dane z tablicy według ich położenia i wymnaża je przez 5.5 a następnie ukazuje na ekranie. Indeksem tablicy nie może być nil!
Następna rzecz to wprowadzanie danych do tablicy. Na chwilę obecną przedstawię okrojony materiał, gdyż tą funkcję przybliżymy sobie w następnych rozdziałach, ale pokażę jej zastosowanie i funkcjonalność. Spójrz na przykład:

Kod:

local tbl = {}

for i = 1, 10 do

table.insert(tbl,i)

end

 

for i, k in ipairs(tbl) do

print(k)

end

Aby odwołać się do wartości z tablicy należy wywołać ją po indeksie. 

Kod:

local tbl = {1,2}

local tbl2 = {a = 5}

 

print(tbl[1],tbl[2])

print(tbl2.a)

Wartości tablicowych możemy używać do praktycznie (lub jak nie) wszystkiego. Możemy je wprowadzać do funkcji, wykonywać na nich działania matematyczne, wyświetlać na ekranie. 

Mam nadzieję, że w tym rozdziale przekazałem najpotrzebniejsze informacje odnośnie tablic i o niczym nie zapomniałem. Proszę o kontakt ze mną w razie jakiś pytań lub uwag.

Autor: Simon

http://forum.tibia.tv/showthread.php?t=27931

Zgłoś jeśli naruszono regulamin