1. 函数前的冒号和点号
点号(.
)和冒号(:
)的区别主要在于是否自动处理self
参数。
在Lua中,函数定义时前面有点号(.
)和冒号(:
)的区别主要体现在函数如何处理其第一个参数,即隐式的self
参数。具体来说:
-
使用点号(
.
)定义或调用函数时,函数就是一个普通的函数,不会自动处理self
参数。这种方式通常用于访问模块或表中的函数,而不是对象的方法。 -
使用冒号(
:
)定义或调用函数时,Lua会自动将调用该方法的表作为第一个参数传递给函数,这个参数通常被命名为self
。这种方式用于定义和调用对象的方法,能够让你在函数内部访问和操作对象的状态。
两者的区别如下述例子所示:
local myTable = {
}
myTable.value =