在Lua中,"."和":"是用于访问表的两种不同的方式。"."用于直接访问表中的元素,而":"用于访问表中的方法。 当使用"."时,表中的元素名应该是一个有效的标识符。例如,如果tbl是一个表,并且该表中有一个元素名为key的键值对,则以下代码将返回该元素的值: tbl.key 当使用":"时,表中的元素应该是一个方法。冒号语法将自动将表作为方法的第一个参数传递。例如,如果tbl中有一个函数func,则以下代码会将tbl作为第一个参数传递给该函数: tbl:func() 这两种方法的最终结果是相同的,但是决定使用哪种取决于元素是一个值还是一个函数。

在一些函数的调用中,我们使用“.”运算符,而在一些函数中使用“:”,它们之间有什么区别。

示例:

storyboard:addEventLsitener(something,something)
graphics.newImageSheet(something,something)

翻译中包含原有的 markdown 格式。

点赞
用户3447428
用户3447428

foo:bar(...) 是语法糖,用于 foo.bar(foo, ...),即传统的面向对象语法。 . 运算符只是正常访问表的成员,当与函数调用结合使用时不做任何特殊处理,而 : 则设置被调用函数的 self 参数。

2014-03-21 17:03:51
用户107090
用户107090

"storyboard:addEventListener(a,b)" 是 "storyboard.addEventListener(storyboard,a,b)" 的简写。

2014-03-21 17:04:07