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"中.
BMi*_*tch 11
由于table方法尚未关联t,您必须通过table.insert语法直接调用它们,或者将metatable定义t为table,例如:
> t = {1,2,3}
> setmetatable(t, {__index=table})
> t:insert(9)
> print (t[4])
9
Run Code Online (Sandbox Code Playgroud)