gpt4 book ai didi

lua - 如何防止我的可调用 Lua 表将自身作为参数传递给 __call?

转载 作者:行者123 更新时间:2023-12-01 13:58:06 26 4
gpt4 key购买 nike

假设我有以下代码:

local t = {};
setmetatable(t, {__call=print});
t(3, 5, 7)

代替打印:

3    5    7

它打印:

table: 0x9357020    3   5   7

表的id是t的id。

如何让它表现得像我直接调用 print 一样?

最佳答案

你不能; __call 指定的函数总是传递被调用的项目。

不过,您可以做的是创建一个包装函数,它只丢弃第一个参数并仅使用第一个参数之后的参数调用您最初想调用的函数,并将该包装函数设置为 __call 值。

关于lua - 如何防止我的可调用 Lua 表将自身作为参数传递给 __call?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15060459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com