Lua 琐事答案 |
|
这取决于 a.b 是什么!
a = {}; b = {}; c = {}
print(a,b,c) --> a,b,c
a.b = function(...) print(...) end
a:b(c) --> a,c
mt = {}
mt.__call = function(...) print(...) end
a.b = setmetatable(b, mt)
a:b(c) --> b,a,c
a.b(a,c) --> b,a,c (identical)
此外,a、c 和全局环境表可能会调用元方法,这些元方法也会调用函数。
2 3 2
1 4 6
-- 符号不被解释为变量递减,而是被解释为注释的开始... ++ 运算符在 Lua 中也不存在,但在这里不会产生错误,因为它在注释中!
请注意,问题中缺乏语法高亮实际上是故意的。
返回 LuaTrivia