Lua 哑变量

【1】哑变量

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

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

哑变量的应用示例如下:

 local filename = "baiyin201904huadan.zip"
 beginPos, endPos = string.find(filename, ".zip")
 if endPos == string.len(filename) then
     print("beginPos : " .. beginPos .. " | endPos : " .. endPos .. " | len : " .. string.len(filename))
 end

 print("-----------------------------------")

 _, endPos = string.find(filename, ".zip")
 if endPos == string.len(filename) then
     print("endPos : " .. endPos .. " | len : " .. string.len(filename))
 end

 print("-----------------------------------")

 beginPos = string.find(filename, ".zip")
 if beginPos == string.len(filename) then
     print("if beginPos : " .. beginPos .. " | len : " .. string.len(filename))
 else
     print("else beginPos : " .. beginPos .. " | len : " .. string.len(filename))
 end

 -- 输出
 --[[
 beginPos : 19 | endPos : 22 | len : 22
 -----------------------------------
 endPos : 22 | len : 22
 -----------------------------------
 else beginPos : 19 | len : 22
 --]]

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

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

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

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

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

Good Good Study, Day Day Up.

顺序 选择 循环 总结

上一篇:Leetcode难度表及解题汇总


下一篇:将自己写的Python代码打包放到PyPI上