Warum Lua-Länge (#) Betreiber unerwarteten Werte?

Lua hat den # - operator zur Berechnung der "Länge" einer Tabelle als ein array.
Ich habe diesen Betreiber, und ich bin überrascht.

Dies ist der code, dass ich das laufen lassen unter Lua 5.2.3:

t = {};
t[0] = 1;
t[1] = 2;
print(#t); -- 1 aha lua counts from one
t[2] = 3;
print(#t); -- 2 tree values, but only two are count
t[4] = 3;
print(#t); -- 4  but 3 is mssing?
t[400] = 400;
t[401] = 401;
print(#t); -- still 4, now I am confused?


t2 = {10, 20, nil, 40}
print(#t2); -- 4 but documentations says this is not a sequence?

Kann mir jemand die Regeln erklären?

  • Erläuterung der Regeln ist die Aufgabe der Designer. Sie haben dies in den Dokumentation. (Nicht alle Dokumentation ist nützlich für das lernen, aber das ist, wo das lernen sollte beginnen und fortfahren.)
InformationsquelleAutor LeMoussel | 2014-05-11
Schreibe einen Kommentar