Lua 5.3
这不起作用,为什么?为什么短呼叫表不适用于表?
t = { "a", "b", "c" }
s = t:concat()
这有效......
s = table.concat(t)
答案 0 :(得分:2)
string
库将其函数导出到所有字符串共享的元表。这就是为什么你可以像str:upper()
一样使用string.upper(str)
。
table
库的情况并非如此。您必须手动设置元表。例如,这有效:
local t = { "a", "b", "c" }
t.__index = table
setmetatable(t, t)
local s = t:concat()
print(s) -- abc