vik*_*rry 3 methods lua initializer
在Lua语言中,我能够在表格中定义诸如的函数
table = { myfunction = function(x) return x end }
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以用这种方式创建方法,而不是像我这样做
function table:mymethod() ... end
Run Code Online (Sandbox Code Playgroud)
我很确定可以用这种方式添加方法,但我不确定这种技术的正确名称,我找不到它寻找"lua"和"方法"等.
我的目的是将表传递给诸如的函数myfunction({data= stuff, name = returnedName, ?method?init() = stuff})
.
不幸的是,我尝试了几种冒号方法声明的组合,但它们都不是有效的语法.
那么......这里有人碰巧知道吗?
当然:table:method()
只是语法糖table.method(self)
,但你必须照顾这个self
论点.如果你这样做
tab={f=function(x)return x end }
Run Code Online (Sandbox Code Playgroud)
然后tab:f(x)
将无法工作,因为这实际上是tab.f(tab,x)
,因此将返回tab
而不是x
.