0

__indexのメタテーブルを設定してから、次のfooいずれかを呼び出すと:

print(foo.x)

また

print(foo.x())

__indexカスタム関数でこれら 2 つの呼び出しを区別する方法はありますか?

4

1 に答える 1

3

いいえ、それらは 2 つの異なるものではないためです。これらは同じ操作です。テーブルを取得して、という名前のフィールドにアクセスしますx。結果に対して関数を呼び出そうとするという事実は、まったく無関係です。結局のところ、これを行うことができます:

local temp = foo.x
temp()

そして、それは 100% 同等の Lua コードでなければなりません。

于 2013-07-22T04:43:52.907 に答える