先说结论
点号需要显示的传递对象
冒号可以省略第一个参数,这个参数就是指向调用者本身,类似c++中的this。
示例:
--[[
/* ====================================================
# Copyright (C)2021 All rights reserved.
#
# Author : xxx
# Email : xxx@gmail.com
# File Name : 1.lua
# Last Modified : 2021-02-25 15:10
# Description :
#
# ====================================================*/
--]]
car = {price = 10000, color = "black"}
-- .和:号定义与调用
function car.show_price(t_car)
print(t_car.price)
end
function car:show_price()
print(self.price)
end
function car.change_color(t_car,new_color)
t_car.color = new_color
end
function car:change_color(new_color)
self.color = new_color
end
-- 调用
car.show_price(car)
car:show_price()
car.change_color(car,"red")
print(car.color)
car:change_color("yellow")
print(car.color)
运行结果:
10000
10000
red
yellow