2012-02-08 14 views
7

Jestem nowa w Lua i chcę wydrukować zawartość tabeli do celów debugowania. Mogę to zrobić, wykonując iterację nad stołem. Ponieważ jednak wydaje mi się, że jest to bardzo powszechny problem, spodziewam się, że musi to być nieoczekiwany sposób, lub ktoś musi napisać ładną bibliotekę, która to robi. Co to jest standardowy sposób robienia tego w Lua?Czytelna dla człowieka reprezentacja ciągów tabelkowych w Lua

Odpowiedz

3

na lepsze lub gorsze, nie ma w standardzie. Lua jest znana z tego, co wyklucza, a także z tego, co zawiera. Nie ma założeń co do poprawności reprezentacji napisów, ponieważ nie ma jednego prawdziwego sposobu obsługi takich rzeczy jak formaty, tabele zagnieżdżone, reprezentacja funkcji czy cykle tabel. Biorąc to pod uwagę, nie zaszkodzi zacząć od biblioteki "Lau" dołączonej do baterii. Może rozważyć Penlight. Jego pl.pretty.write załatwia sprawę.

3

Jest to wystąpienie ogólnego problemu serializacji tabel.

Spójrz na at the Table Serialization page at lua-users dla poważnych implementacji.

Moja rzucić na niego jest zwykle szybko definiowanie funkcji jak

function lt(t) for k,v in pairs(t) do print(k,v) end end 
+0

Widziałem tę stronę, ale trudno uwierzyć, że taki wspólny problem get rozwiązany w kółko iw taki gadatliwym mody. – ajmurmann

+2

dlatego pełna instalacja Lua to około 1Mb (w przeciwieństwie do pytona na 43,3 MB). Masz rację, ale znowu, podczas gdy możesz potrzebować tej funkcji, której inni nie mogą (pomyśl o osadzeniu Lua). Nie musisz go implementować w kółko, po prostu upuść w pliku i "wymagaj" w razie potrzeby lub umieść w zmiennej środowiskowej 'LUA_INIT', która załaduje ją automatycznie (patrz: [* samodzielny * sekcja] (http://www.lua.org/manual/5.2/manual.html#7) podręcznika Lua). – jpjacobs

+2

@ajmurmann - Trudno w to uwierzyć, prawda. Ale Lua jest znana z tego, co wyklucza, a także z tego, co zawiera. Nie zawiera ona założeń dotyczących poprawnych reprezentacji ciągów, ponieważ nie ma jednego sposobu na obsługę takich rzeczy jak formaty, tabele zagnieżdżone, reprezentacja funkcji czy cykle tabel. Biorąc to pod uwagę, nie zaszkodzi zacząć od biblioteki "Lau" dołączonej do baterii. Może rozważyć [Penlight] (http://stevedonovan.github.com/Penlight/). [pl.pretty.write] (http://stevedonovan.github.com/Penlight/api/modules/pl.pretty.html#write) robi lewę. –