我是 Lua 的新手,正在参与一个项目,遇到了一个问题,就是我不理解代码中的 ":" 符号。在手册中也没有找到相关解释。例如,我应该如何理解以下代码:
res:template{
main = 'functionform.html',
functionjs = '_functionform.js',
functionform = '_functionform.html'
}
我是 Lua 的新手,正在参与一个项目,遇到了一个问题,就是我不理解代码中的 ":" 符号。在手册中也没有找到相关解释。例如,我应该如何理解以下代码:
res:template{
main = 'functionform.html',
functionjs = '_functionform.js',
functionform = '_functionform.html'
}
在Lua中,冒号操作符PIL是一种语法糖。它用于面向对象的Lua中,使普通函数调用看起来更像方法调用。它所做的就是在调用函数时将对象作为self
参数传递。看这个例子:
a.myFunction(a, 'foo')
这相当于:
a:myFunction('foo')
在你的例子中,方法调用省略了括号,因为它的唯一参数是一个表PIL,所以没有冒号运算符的函数调用将类似于:
res.template(res, {
main = 'functionform.html',
functionjs = '_functionform.js',
functionform = '_functionform.html'
})
所以你可以看到,这个小语法糖非常方便。
res:template{}
与res.template(res, {})
相同。