gpt4 book ai didi

unit-testing - 预期在 ',' 附近的函数参数

转载 作者:行者123 更新时间:2023-12-04 05:06:29 25 4
gpt4 key购买 nike

我有一个这样定义的类:

local MyClass = {
_VERSION = 'MyClass 1.0.0'
}
MyClass.__index = MyClass

setmetatable(MyClass, {
__call = function (cls, ...)
return cls.new(...)
end
})

function MyClass.new(prop1)
local self = setmetatable({}, MyClass)
self.prop1 = prop1
return self
end

function MyClass:msg(txt)
self.prop1 = txt
print(self.prop1)
end

function MyClass:callFunc(func, ...)
pcall(func, ...)
end

我的客户端代码可能如下所示:

local inst = MyClass("value 1")
inst:msg("Hello world")
inst:callFunc(inst:msg, "Hello again")

当我运行此客户端代码时,我收到一条错误消息

function arguments expected near ','

代码是完全可重现的。您可以轻松查看 here .只需复制粘贴并运行它,您将收到此错误消息。我该如何解决?

最佳答案

问题在于在 inst:callFunc(inst:msg, "Hello again") 中使用 inst:msg: 语法只是一个“调用”约定(这就是为什么它需要一个函数参数),因此不能用于引用方法。您可以简单地将其替换为 inst.msgMyClass.msg 并获得您期望的相同效果而不会触发错误。

关于unit-testing - 预期在 ',' 附近的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47394504/

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