疯狂的lua|学习笔记(一)|冒号“:”的用法,和“.”的区别

(lua工程师的精神状态普遍堪忧......)

冒号“:”的用法,和“.”的区别

冒号在定义方法或者调用方法的时候使用。

和“.”定义或者调用方法的不同在于,“:”传参的时候会把self放在第一位传进去。

比如,现在表_tab有一个方法,如下:

_tab = {}
function _tab.f1(num1,num2)
	print(num1,num2)
end

如果用“.”调用方法,分别少传一个参,正好传两个参,以及多传参,有如下效果:

_tab.f1(1)			--输出1 nil
_tab.f1(1,2)		--输出1 2
_tab.f1(1,2,3)		--输出1 2

如果用“:”调用方法,分别少传两个参,少传一个参,正好传两个参,以及多传一个参,就有如下效果:

_tab:f1()			--输出table: 00D09DD8	nil
_tab:f1(1)			--输出table: 00D09DD8	1
_tab:f1(1,2)		--输出table: 00D09DD8	1
_tab:f1(1,2,3) 		--输出table: 00D09DD8	1

这是因为使用“:”时,

第一条语句就相当于用“.”只传了_tab;

第二条语句就相当于用“.”依次传了_tab和1;

第三条语句就相当于用“.”依次传了_tab和1和2(多传了一个参);

第四条就相当于多传了两个参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值