Tôi đang cố gắng để tìm ra tương đương với:Làm thế nào để thêm vào một bảng trong Lua
foo = []
foo << "bar"
foo << "baz"
Tôi không muốn phải đưa ra một chỉ số incrementing. Có cách nào làm dễ hơn không?
Tôi đang cố gắng để tìm ra tương đương với:Làm thế nào để thêm vào một bảng trong Lua
foo = []
foo << "bar"
foo << "baz"
Tôi không muốn phải đưa ra một chỉ số incrementing. Có cách nào làm dễ hơn không?
Bạn đang tìm kiếm chức năng insert
, được tìm thấy trong phần table
của thư viện chính.
foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")
Ah như vậy: foo = {}; table.insert (foo, "bar"); table.insert (foo, "baz") – drewish
Chết tiệt, bạn đã trả lời bằng cách sử dụng hàm 'insert' trong khi tôi đang gõ câu trả lời của mình. *Tư tưởng lớn gặp nhau*. :-) – cybermonkey
Chính xác. Bạn không cần dấu chấm phẩy, nhưng bạn có thể có em nếu bạn muốn. – rsethc
foo = {}
foo[#foo+1]="bar"
foo[#foo+1]="baz"
này hoạt động bởi vì các nhà điều hành #
tính độ dài của danh sách. Danh sách sản phẩm nào có chiều dài 0, vv
Nếu bạn đang sử dụng Lua 5.3+, sau đó bạn có thể làm gần như chính xác những gì bạn muốn:
foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"
Expressions không báo cáo trong Lua và họ cần phải được sử dụng bằng cách nào đó.
Vui lòng mở rộng lý do tại sao phương thức của bạn hoạt động .. – cybermonkey
Tôi không yêu thích giao diện của nó nhưng rất hay để biết nó hoạt động. – drewish
Nó hơi nhanh hơn 'table.insert'. – Tim
Cá nhân tôi muốn tận dụng các table.insert
chức năng:
table.insert(a,"b")
này giúp bạn khỏi phải để lặp qua toàn bộ bảng do đó tiết kiệm nguồn tài nguyên có giá trị như bộ nhớ và thời gian.
Toàn bộ tài liệu có sẵn tại http://www.lua.org/manual/5.2/ – rsethc
oh điều đó thực sự hữu ích. google tiếp tục hướng tôi về phía http://www.lua.org/pil/2.5.html mà về cơ bản là vô ích. – drewish