嵌套表语法中对象的功能?

时间:2014-10-29 09:30:33

标签: class syntax lua lua-table

我有一张这样的桌子给了我

  

'('预计在'错误'附近't'附近

这意味着必须存在语法错误,但我无法检测到。您知道语法有什么问题吗?

t = {}

t[x] = {
   some = "data",

   foo = function() return "bar" end,

   elements = {   -- the class is working 100%, have used it for several projects.
     mon =  class:new(param), 
     tue =  class:new(param2),
     n   =  class:new(param3),
   },

   function t[x].elements.mon:clicked()   -- <<< --- ERRORLINE
      --dosomething
   end,
}

1 个答案:

答案 0 :(得分:4)

在表格声明 之后添加函数t [x] .elements.mon:clicked() ,即在表格的大括号之后。

t = {}

t[x] = {
   some = "data",

   foo = function() return "bar" end,

   elements = {   -- the class is working 100%, have used it for several projects.
     mon =  class:new(param), 
     tue =  class:new(param2),
     n   =  class:new(param3),
   }
}


t[x].elements.mon.clicked = function(self)
      --dosomething
end

编辑:

正如评论中提到的,函数t[x].elements.mon:clicked()无法正常工作。 函数声明应为t[x].elements.mon.clicked = function(self)

请注意,如果使用冒号调用点函数,则函数的第一个参数将为self。即如果你将函数称为c = t[x].elements.mon:clicked(a,b),那么该函数应该是 t[x].elements.mon.clicked = function(self,a,b)