Lua 有一个非常好的无括号调用语法,再加上函数闭包,我可以编写以下代码
local tag = 1
function test(obj)
return
function(str)
return
function (tbl)
tbl.objtag = tag
tbl.objname = str
return tbl
end
end
end
test (tag) "def"
{
}
test tag "def" --error
{
}
但是,如果我删除 (tag) 周围的括号,则会导致编译错误。那么为什么 Lua 允许无括号参数(即“def”)而不是无括号 var(本例中为表)参数?