Object 自索引成为一个参数
鉴于这一目标:Object 自索引成为一个参数,object,lua,Object,Lua,鉴于这一目标: foo = { } function foo:new( p1, p2 ) local object = {} setmetatable( object, self ) self.__index = self object .p1 = p1 object .p2 = p2 return object end function foo:bar( boolbar ) self.p1 = not boolbar print( self.p1 ) end
foo = { }
function foo:new( p1, p2 )
local object = {}
setmetatable( object, self )
self.__index = self
object .p1 = p1
object .p2 = p2
return object
end
function foo:bar( boolbar )
self.p1 = not boolbar
print( self.p1 )
end
现在我得到了另一个对象,它通过使用对foo的引用调用foos函数,foo是不可直接访问的,并向它传递一个参数。不知何故,赛尔夫成了争论的焦点
reference_to_foo = foo
function the_other_object:some_func()
-- does some stuff
reference_to_foo:bar( true )
end
调用foo:bar可以很好地工作,但是在本例中,每引用\u到\u foo,索引self就变成了布尔参数
在:bar中,我将得到以下错误:
尝试将本地“self”索引为布尔值
这是为什么?我如何解决这个问题?您是否确保使用带有冒号的reference\u to\u foo:bar,就像您在示例代码中所做的那样?您是如何定义_other_对象的?您到底是如何调用:some_func的?如果您提供了一个完整的功能性示例,或者在本例中是一个非功能性示例,其中只包含重现问题所需的代码,那就太好了。