为什么在Lua 5.3中表的短调用形式不起作用?

这个不起作用,为什么?为什么表的短调用形式不起作用?

t = { "a", "b", "c" }
s = t:concat()

这个起作用 ...

s = table.concat(t)
点赞
用户1009479
用户1009479

string 库将其功能导出到所有字符串共享的元表中。这就是为什么您可以像 string.upper(str) 一样使用 str:upper()

对于 table 库不是这样的。您必须手动设置元表。例如,这个工作原理:

local t = { "a", "b", "c" }
t.__index = table
setmetatable(t, t)
local s = t:concat()
print(s)  -- abc
2015-05-27 01:11:32