gpt4 book ai didi

lua - 为什么不能使用Set:union()代替Set.union?

转载 作者:行者123 更新时间:2023-12-04 16:49:30 28 4
gpt4 key购买 nike

我正在学习Lua,我更愿意使用冒号(:)作为方法。不幸的是,它并非在所有地方都有效。看我的代码:

设置= {}
本地mt = {}
函数Set:new(m)
本地集= {}
setmetatable(set,mt)
对于成对的a,b(m)
set [b] = true
结束
返回集
结束

函数Set.union(a,b)
本地res = Set:新({})
对于成对的k(a)做res [k] = true结束
对于成对的k(b)做res [k] = true结束
返回资源
结束
mt .__ add = Set.union-为什么Set:union()在这里不起作用?

s1 = Set:new {22,55,77}
s2 = Set:new {2,5,3}
s3 = s1 + s2


如何在提到的地方使用Set:union()或在这里不能使用?

最佳答案

因为冒号只是用于定义和调用函数的语法糖。如您所读,obj:f()等效于obj.f(obj),而function A:f()等效于function A.f(self)。这就是所有的冒号。

在您的示例中,Set:union不属于上述两种用途。确实没有更多内容,但是请随时提出:)

关于lua - 为什么不能使用Set:union()代替Set.union?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779671/

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