2012-08-09 7 views
11

Próbuję nauczyć się lin na Lua, a ja przechodziłem online samouczki. Jednym z problemów, które próbowałem rozwiązać, było zbadanie tabeli local foo = {}, aby zobaczyć, ile elementów miała. Samouczek dał sugestię, aby użyć local length = table.getn(foo). Kiedy próbuję tego przy użyciu Lua52, pojawia się błąd informujący o attempt to call field 'getn' (a nil value). Rozejrzałem się dalej i zauważyłem, że każda z funkcji podanych przy table powoduje ten sam typ błędu. Czy biblioteka table została usunięta z Lua? Czy jest to trzecia biblioteka lub co daje?Biblioteka stołu Lua została usunięta?

Odpowiedz

27

Użyj operatora długości #, jak w #foo.

table.getn był przestarzały w wersji 5.1 i usunięty w wersji 5.2.

+2

Pierwsze trafienie dla "lua size of array" to [ta oczywiście okropnie przestarzała książka] (https://www.lua.org/pil/19.1.html) promująca 'table.getn'. I to na 'lua.org'. – Zulan

5

Biblioteka stołów nie została usunięta, ponieważ jest istotną częścią języka i systemu modułów. Funkcja getn została usunięta, ale jeśli żadna funkcja funkcji tabeli nie działa, to prawie na pewno, ponieważ nadpisałeś table.