Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Object 自索引成为一个参数_Object_Lua - Fatal编程技术网

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的?如果您提供了一个完整的功能性示例,或者在本例中是一个非功能性示例,其中只包含重现问题所需的代码,那就太好了。