【发布时间】:2018-10-13 08:51:53
【问题描述】:
我最初在 LOVE2D 中开发我的游戏时遇到了这个问题,但我不知道为什么。
据我所知,x:foo() 只是x.foo(self) 的语法糖,但将其与其他类结合会导致一些奇怪的行为。
基本上,我有两个程序
y = {}
function y:bar()
return self.b
end
x = {}
function x:foo()
return y.bar(self)
end
print(x.foo({b = 3}))
这会按预期打印3
y = {}
function y:bar()
return self.b
end
x = {}
function x:foo()
return y:bar()
end
print(x.foo({b = 3}))
但这会打印nil !!
我不明白,为什么这两个程序打印不同的东西?
【问题讨论】:
-
y:bar()与y.bar(y)相同
标签: lua