繁体   English   中英

lua 表中的方法是什么样的

[英]What does a method look like in a lua table

标题说明了大部分内容,但以防万一它不完全有意义我的意思是表中的一段数据如下所示:

local myTable = {"banana","apple"}
-- or
local myTable = {["banana"] = 1,["apple"]=2,}
-- functions look like this:
local myTable = {
  function banana(args) print(args) end,
  -- or
  apple = function(args) print(args) end
}

但我不确定方法是什么样的……当然我可以把它们放在桌子外面,但我更希望它在桌子里……但是当我看普通的“字典/图书馆”时,我并没有真正看到任何看起来像我需要的东西

lua 中的方法可能是表中的 function。

t={method=function(a) return a end}

你可以这样称呼这个 function:

t.method(2)--returns 2

但是,如果您使用冒号调用此 function :它将表t作为第一个参数传递:

t:method()--returns 't'
t:method(2)--still returns 't'

实际上相当于这样调用它:

t.method(t)--returns t

如果要用作“方法”,则将第一个参数命名为self也是一种习惯。 所以:

t={method=function(self, a) return a end}
t.method()--returns nil
t.method(1)--returns nil
t.method(1, 2)--returns 2
t:method()--returns nil
t:method(1)--returns 1
t:method(1, 2)--returns 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM