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?
11
A
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.
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
.
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