冒号的使用冒号的使用如果用点号调用对象方法记得把对象本身当参数传进去哦
冒号的使用
在Lua里,冒号主要用来调用对象的方法。啥是对象的方法呢?就是那种方法名前面带冒号的函数,它第一个参数总是这个对象本身。如果你用点号(.)来调用,就会出大问题,因为它想的是对象本身而不是你传的那个。
示例
看看这个例子:
```lua obj = {} obj.printMsg = function() print("Hello from obj") end -- 错误的调用方式 obj.printMsg() -- 这里会出错,因为它以为printMsg需要的是obj的属性 -- 正确的调用方式 obj:printMsg() -- 这样调用就对了,因为它知道printMsg的第一个参数是obj本身 ```点号的使用
点号呢,一般用来调用全局函数或者在表中查找字段。跟冒号不一样,点号不常用于调用对象方法。如果你用点号调用对象方法,你还得把对象本身当参数传进去。
示例
来,看看这个例子:
```lua function printMsg() print("Hello from global") end obj = {printMsg = printMsg} -- 全局函数的调用 printMsg() -- 直接这样调用 -- 对象方法的调用 obj.printMsg() -- 这里也是点号,但是obj本身作为参数传给了printMsg ```在Lua里,冒号和点号用得明明白白。冒号是给对象方法用的,点号是给全局函数和表字段用的。如果用点号调用对象方法,记得把对象本身当参数传进去哦。
希望这篇小文章能帮你更好地掌握Lua中的函数调用,少出错,多开心编程!