2012-08-09 5 views
11

Ich versuche, die Leine zu lernen, und ich ging durch die Online-Tutorials. Ein Problem, das ich zu lösen versuchte, war eine Tabelle local foo = {} zu prüfen, wie viele Elemente es hatte. Das Tutorial gab den Vorschlag, local length = table.getn(foo) zu verwenden. Wenn ich dies mit Lua52 versuche, bekomme ich einen Fehler mit der Nummer attempt to call field 'getn' (a nil value). Ich sah mich weiter um und bemerkte, dass irgendeine der Funktionen, die mit table gegeben wurden, den gleichen Fehlertyp erzeugen. Wurde die Bibliothek table aus Lua entfernt? Ist es eine Drittanbieter-Bibliothek oder was gibt es?Lua Tabellenbibliothek entfernt?

Antwort

27

Verwenden Sie den Längenoperator wie in #foo.

table.getn wurde in 5.1 veraltet und in 5.2 entfernt.

+2

Der erste Hit für "lua size of array" ist [dieses offensichtlich schrecklich veraltete Buch] (https://www.lua.org/pil/19.1.html), das für "table.getn" plädiert. Und das ist auf 'lua.org'. – Zulan

5

Die Tabellenbibliothek wurde nicht entfernt, da sie ein wesentlicher Bestandteil der Sprache und des Modulsystems ist. Die getn Funktion wurde entfernt, aber wenn keine der Tabellenfunktionen funktioniert, ist es fast sicher, weil Sie table überschrieben haben.