如何解决lua表中的方法是什么样的
标题说明了大部分内容,但万一它不是完全有意义,我的意思是说表中的数据看起来像这样:
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中,方法可能意味着表中的函数。
t={method=function(a) return a end}
您可以这样调用此函数:
t.method(2)--returns 2
但是,如果您使用冒号:
调用此函数,它将把表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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。