lua编程注意事项

参数个数非预期的问题

function a()
	return "a1", "a2"
end
print(1, a())
print(1, a(), 2)

打印的结果是

1	a1	a2
1	a1	2

可以看到,第二次打印的时候a的第二个返回值丢失了。这是因为lua函数的有效返回值个数是不确定的,函数调用如果不是在形参的最后,编译结果中只能占据一个形参位,乃无奈之举。


比较是否相等

nil == false
param = param or 1
首先,nil和false不相等,但是对if判断时都是假。第二行是附默认值的常见写法,但是如果希望:参数是布尔值,如果没指定就为true,并且可以指定为false,那么上面的写法就有问题了,当指定为false时,参数的而最终值还是true。这时候应当写为:

错误:param = param or true
正确:param = param == nil or true



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值