【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.
顺序 选择 循环 总结