Lua 在索引中区分字段访问和函数调用

Lua 在索引中区分字段访问和函数调用,lua,Lua,如果我为foo的元表设置\uuu index,然后调用: print(foo.x) 或 在我的自定义\uu index函数中,有没有一种方法可以区分这两个调用。没有,因为它们不是两个不同的东西。它们是相同的操作:获取表并访问名为x的字段。它将尝试对结果调用函数这一事实是完全不相关的。毕竟,你可以这样做: local temp = foo.x temp() 这应该是100%等价的Lua代码。不,因为这不是两件不同的事情。它们是相同的操作:获取表并访问名为x的字段。它将尝试对结果调用函数这一事实

如果我为
foo
的元表设置
\uuu index
,然后调用:

print(foo.x)


在我的自定义
\uu index
函数中,有没有一种方法可以区分这两个调用。

没有,因为它们不是两个不同的东西。它们是相同的操作:获取表并访问名为
x
的字段。它将尝试对结果调用函数这一事实是完全不相关的。毕竟,你可以这样做:

local temp = foo.x
temp()

这应该是100%等价的Lua代码。

不,因为这不是两件不同的事情。它们是相同的操作:获取表并访问名为
x
的字段。它将尝试对结果调用函数这一事实是完全不相关的。毕竟,你可以这样做:

local temp = foo.x
temp()
这应该是100%等价的Lua代码