Lua 哑变量

【1】哑变量

哑变量,又称为虚拟变量、名义变量。

还得理解汉语的博大精深,‘虚拟’、‘名义’、‘哑’等等,都是没有实际意义。所以,哑变量即没有现实意义的变量。

哑变量的应用示例如下:

 1 local filename = "baiyin201904huadan.zip"
 2 beginPos, endPos = string.find(filename, ".zip")
 3 if endPos == string.len(filename) then
 4     print("beginPos : " .. beginPos .. " | endPos : " .. endPos .. " | len : " .. string.len(filename))
 5 end
 6 
 7 print("-----------------------------------")
 8 
 9 _, endPos = string.find(filename, ".zip")
10 if endPos == string.len(filename) then
11     print("endPos : " .. endPos .. " | len : " .. string.len(filename))
12 end
13 
14 print("-----------------------------------")
15 
16 beginPos = string.find(filename, ".zip")
17 if beginPos == string.len(filename) then
18     print("if beginPos : " .. beginPos .. " | len : " .. string.len(filename))
19 else
20     print("else beginPos : " .. beginPos .. " | len : " .. string.len(filename))
21 end
22 
23 -- 输出
24 --[[
25 beginPos : 19 | endPos : 22 | len : 22
26 -----------------------------------
27 endPos : 22 | len : 22
28 -----------------------------------
29 else beginPos : 19 | len : 22
30 --]]

如上,示例代码中三次调用到find函数,注意分析三次调用的区别。

当第二次调用find函数时,我们定义返回值为两个变量(_, endPos),其中第一个变量为哑变量的应用实例。

因为Lua语言函数可能会返回多个值,比如find函数会返回两个值(起始索引、结束索引),其他语言一般只会返回起始索引值(比如C++)。

但根据业务规则,此时调用find函数需要利用其return的第二个返回值(结束索引),而第一个返回值(起始索引)对于我们没有意义,所以使用这样一个虚拟变量。

假使我们不使用哑变量,那么如第三次调用的形式,我们始终得到的是函数的第一个返回值(起始索引),不能满足我们的业务需求。

Good Good Study, Day Day Up.

顺序 选择 循环 总结

转载于:https://www.cnblogs.com/Braveliu/p/10722861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值