我试图找出相当于:
foo = []
foo << "bar"
foo << "baz"
Run Code Online (Sandbox Code Playgroud)
我不想提出递增索引.是否有捷径可寻?
rse*_*thc 46
您正在寻找的insert功能,在发现table主库的部分.
foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")
Run Code Online (Sandbox Code Playgroud)
lhf*_*lhf 34
foo = {}
foo[#foo+1]="bar"
foo[#foo+1]="baz"
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为#运算符计算列表的长度.空列表的长度为0,等等.
如果您使用的是Lua 5.3+,那么您几乎可以完全按照自己的意愿行事:
foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"
Run Code Online (Sandbox Code Playgroud)
表达式不是Lua中的语句,需要以某种方式使用它们.
我个人会使用这个table.insert功能:
table.insert(a,"b");
Run Code Online (Sandbox Code Playgroud)
这样您就不必遍历整个表,从而节省了宝贵的资源,如内存和时间.