I natknął się na dziwne zachowanie w Lua funkcja rozpakowaćLua rozpakować błąd?
table1 = {true, nil, true, false, nil, true, nil}
table2 = {true, false, nil, false, nil, true, nil}
a1,b1,c1,d1,e1,f1,g1 = unpack(table1)
print ("table1:",a1,b1,c1,d1,e1,f1,g1)
a2,b2,c2,d2,e2,f2,g2 = unpack(table2)
print ("table2:",a2,b2,c2,d2,e2,f2,g2)
wyjściowa:
table1: true nil true false nil nil nil
table2: true false nil nil nil nil nil
Drugi rozpakować dostarcza parametrów do pierwszej wartości zerowej. Mógłbym z tym żyć. Pierwsza tabela zapewnia 4? parametry z jednym zero w środku. Ma 4 parametry, które nie są zerowe, ale nie są tymi, które są pokazane.
Czy ktoś może to wyjaśnić? ten został wypróbowany z codepad.org i Lua 5,1
Dziękuję, uratowałeś mój dzień. Czy to oznacza, że table.maxn() przemierza cały przydzielony rozmiar dla tabeli? – Geggamojja
table.maxn() "Zwraca największy dodatni indeks numeryczny danej tabeli" zobacz http://www.lua.org/manual/5.1/manual.html#pdf-table.maxn – gwell
jest table.maxn naprawdę gwarantowane zwraca tu poprawną wartość (= liczba obiektów w literale tabeli)? – u0b34a0f6ae