Jas*_*uit 2 lua callable metatable
说我有以下代码:
local t = {};
setmetatable(t, {__call=print});
t(3, 5, 7)
Run Code Online (Sandbox Code Playgroud)
而不是打印:
3 5 7
Run Code Online (Sandbox Code Playgroud)
它打印:
table: 0x9357020 3 5 7
Run Code Online (Sandbox Code Playgroud)
表的id是t.
我怎么能让它像我print直接打电话一样?
你不能; __callalways 指定的函数传递给被调用的项.
但是,你可以做的是创建一个包装器函数,它只丢弃第一个参数并调用你最初想要调用的函数,只使用第一个参数之后的参数,并将该包装函数设置为__call值.
| 归档时间: |
|
| 查看次数: |
382 次 |
| 最近记录: |