2012-02-08 30 views
7

Tôi mới dùng Lua và muốn in nội dung của một bảng cho mục đích gỡ lỗi. Tôi có thể làm điều đó bằng cách tự mình lặp lại bảng. Tuy nhiên, kể từ khi điều này tấn công tôi như là một vấn đề rất phổ biến, tôi hy vọng có phải là một trong những cách hộp làm điều đó hoặc ai đó phải đã viết một thư viện tốt đẹp mà làm điều đó. Cách tiêu chuẩn để làm điều này ở Lua là gì?Biểu diễn chuỗi có thể đọc được của con người của bảng trong Lua

Trả lời

3

Dù tốt hay xấu, không có tiêu chuẩn. Lua được biết đến với những gì nó loại trừ nhiều như những gì nó bao gồm. Nó không đưa ra giả định về các biểu diễn chuỗi thích hợp bởi vì không có cách nào đúng để xử lý những thứ như định dạng, bảng lồng nhau, biểu diễn hàm hoặc chu kỳ bảng. Điều đó đang được nói, nó không làm tổn thương để bắt đầu với một "bao gồm pin" Lua thư viện. Có thể xem xét Penlight. pl.pretty.write của nó thực hiện thủ thuật.

3

Đây là ví dụ về vấn đề chung về tuần tự hóa bảng.

Hãy xem at the Table Serialization page at lua-users để thực hiện một số nghiêm túc.

ném tôi vào nó thường được nhanh chóng xác định một chức năng như

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

tôi thấy trang đó, nhưng thấy nó khó tin, rằng đó là một vấn đề get chung của giải quyết hơn và hơn nữa và trong một thời trang tiết như vậy. – ajmurmann

+2

đó là lý do tại sao một cài đặt Lua đầy đủ là khoảng 1Mb (trái ngược với python ở 43,3 MB). Bạn có một điểm, nhưng sau đó một lần nữa, trong khi bạn có thể cần các chức năng rất nhiều người khác có thể không (nghĩ nhúng Lua). Bạn không cần phải thực hiện nó hơn và hơn nữa, chỉ cần thả nó vào một tập tin, và 'require' nó khi cần thiết, hoặc đặt nó trong biến môi trường' LUA_INIT', nó sẽ tự động tải nó (xem [* độc lập * section] (http://www.lua.org/manual/5.2/manual.html#7) của hướng dẫn Lua). – jpjacobs

+2

@ajmurmann - Thật khó tin, đúng. Nhưng Lua được biết đến với những gì nó loại trừ nhiều như những gì nó bao gồm. Nó không đưa ra các giả định về biểu diễn chuỗi thích hợp bởi vì không có cách nào để xử lý những thứ như định dạng, bảng lồng nhau, biểu diễn hàm hoặc chu kỳ bảng. Điều đó đang được nói, nó không làm tổn thương để bắt đầu với một "bao gồm pin" Lua thư viện. Có thể xem xét [Penlight] (http://stevedonovan.github.com/Penlight/). [pl.pretty.write] (http://stevedonovan.github.com/Penlight/api/modules/pl.pretty.html#write) thực hiện thủ thuật. –

Các vấn đề liên quan