Lua - table.insert无效

fro*_*oyo 9 lua insert lua-table

为什么不在Luat:insert(9)工作? (我想在表的末尾附加值9)

t = {1,2,3}
table.insert(t, 9)  -- works (appends 9 to end of table t)
t:insert(9)         -- does NOT work
Run Code Online (Sandbox Code Playgroud)

我一般都想

a.f(a,x)a:f(x)在Lua中是平等的

jho*_*ing 16

虽然这a:f(x)对于a.f(a,x)第二种语法而言只是语法糖而言确实不是你所拥有的.通过倒退来思考:

你试过的函数调用是 t:insert(9)

所以你说的语法规则就是 t.insert(t, 9)

但是工作函数调用是 table.insert(t, 9)

看看最后两个是不一样的?所以你的问题的答案是insert()不是包含在t里面的函数,它在"table"中.

  • 如果要使用insert()命令,请执行.我通过写t [#t + 1] = 9来追加元素 (3认同)

BMi*_*tch 11

由于table方法尚未关联t,您必须通过table.insert语法直接调用它们,或者将metatable定义ttable,例如:

> t = {1,2,3}
> setmetatable(t, {__index=table})
> t:insert(9)
> print (t[4])
9
Run Code Online (Sandbox Code Playgroud)