Emm, nazwa zmiennej jest zwykle zapisywana wed?ug jakiej? tam notacji.
Standardem jest to, ?e i oznacza index, za? v oznacza value - warto??.
Pos?u?my si? przyk?adem poni?ej:
local t={
[1]="test 1",
[2]="test 2",
[3]="test 3",
[4]="test 4",
[5]="test 5",
-- [index]=value
}
for i,v in pairs(t) do
print(v)
end
Widzimy tabel?, p?tle i printa. Sp?jrzmy na pierwsza cz??? tego kodu tj. deklaracje tabeli. W kwadratowych nawiasach jest umieszczony numerek i jest to nic innego jak indeks danego wiersza, kolumny czy jak kto tam woli...
Wywo?anie tej tabeli w p?tli z funkcja pairs da nam wynik:
test 5
test 1
test 2
test 3
test 4
Funkcja pairs zawsze bierze ostatni wiersz wrzuca go do stosu, po kolejnej iteracji bierze ten pierwszy, drugi i tak, a? dojedzie do przedostatniego indeksu...
Funkcj? ipairs otrzymamy wynik:
test 1
test 2
test 3
test 4
test 5
Ipairs nie jest jednak zalecan? funkcja szczeg?lnie przeze mnie.
Poniewa? ta funkcja sprawdza wszystkie indeksy, kt?re s? przedstawione w postaci liczbowej. Pairs nie ma tego sprawdzania w zwi?zku z czym jest szybsza i wydajniejsza o 30 w por?wnaniu do ipairs.
Wracaj?c, deklaruj?c zmienn? I (skr?t od indeks) odwo?ujemy si? do samych indeks?w - tych zapisanych w kwadratowych nawiasach.
Za? deklaruj?c V (skr?t od value) odwo?ujemy si? do przypisanej warto?ci - w tej sytuacji jest przypisany string (?a?cuch znak?w).
Tak na prawd? to programi?ci Lua nie stosuj? poj?cia "index", a "klucz". Ot taki wybryk.
Cz?sto mo?na si? spotka? z czym? takim:
for k,v in ipairs(tablica) do
k - klucz od s?owa 'key'
v - warto?? od s?owa 'value'
Niby bzdura ale my?l?, ?e warto napisa?. W miejsce 'tablica' wrzucasz oczywi?cie zmienn? tablicow? (czyli po prostu tablic?). Oczywi?cie w miejscu 'k' oraz 'v' mo?esz wpisa? w?asne s?owa b?d? litery. Dodam, ?e je?eli nie potrzebujecie np. klucza b?d? warto?ci warto waln?? tam znak pod?ogi '_' co zmniejszy nieco zaj?to?? pami?ci. Warto mie? to na uwadze jak pisze si? ogromne GMy .
Nie. Je?eli chcesz uzyska? ilo?? element?w w tablicy przed nazw? zmiennej tablicowej umie?? 'hash'. Przyk?ad:
tab = {10,20,30,40}
print(#tab) -- wy?wietli nam liczb? 4
P?tla s?u?y po to, by wykona? pewn? czynno?? par? razy. Key w p?tli s?u?y do tego, by ka?dy element poszczeg?lny jako? identyfikowa?. Dla powy?szego przyk?adu klucze b?d? 4 (z racji tego i? w tablicy znajduj? si? 4 elementy) kolejno: 1,2,3,4 (pierwszy element w tablicy, drugi element w tablicy ...). Najlepiej zrozumiesz to tworz?c sobie prosty skrypt, kt?ry wy?wietli Ci te klucze. Czyli np.:
for k,v in ipairs(tab) do
print(k .. " " .. v)
end
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach