概述
1.多变量赋值格式
a,b,c=1,2,"123"
print(a,b,c)
输出:1,2,“123”
a,b,c=1,2
print(a,b,c)
输出:1,2,nil
在给多变量赋值的时候,当值不够的时候,会自动给变量补空,当值过多的时候,会自动丢弃
2.多返回值的接取
function GetSomeValue()
return 1,2,3
end
a,b,c=GetSomeValue()
print(a,b,c)
a,b=GetSomeValue()
print(a,b)
a,b,c,d=GetSomeValue()
print(a,b,c,d)
输出:1,2,3
输出:1,2
输出:1,2,3,nil
接取多返回值的时候,当值不够的时候,会自动给变量补空,当值过多的时候,会自动丢弃(接取返回值的过程就是一个给多变量赋值的过程)
3.and–or 的短路
and or 可以连接任何东西,在Lua中只有nil和false被认为是假
①and:短路用法:遇到假的时候,后面连接的部分就不会执行(有假则假)
print("and")
print(1 and 2)
print(0 and 2)
print(nil and 2)
print(false and 2)
输出:2
输出:2
输出:nil
输出:false
②or:短路用法:遇到真的时候,后面连接的部分就不会执行(有真则真)
print("or")
print(1 or 2)
print(0 or 2)
print(nil or 2)
print(false or 2)
输出:1
输出:0
输出:2
输出:2
③利用短路特性实现三目运算符? :
print("利用短路来实现三目运算符")
local tempValue=(x>y)and x or y
print(tempValue)
当(x>y) 成立的时候,为真,(x>y)and x 得到的是x ——>x or y ,x为真,得到x的值
当(x>y)不成立的时候,为假,(x>y)and x得到的是(x>y)——>(x>y) or y,(x>y)为假,得到的是y的值
当and or 进行连接很多的东西的时候,要拆部分进行分析
4.Demo
print("多变量赋值")
a,b,c=1,2,"123"
print(a,b,c)
a,b,c=1,2
print(a,b,c)
function GetSomeValue()
return 1,2,3
end
a,b,c=GetSomeValue()
print(a,b,c)
a,b=GetSomeValue()
print(a,b)
a,b,c,d=GetSomeValue()
print(a,b,c,d)
print("--and--or--")
--and 有假则假
--or 有真则真
--and ,or 可以连接任何东西,在lua中nil和false被认为是假,其他都为真
--短路用法,and判断到假时,后面的就不会被执行,or判断到真时,后面不会执行
print("and")
print(1 and 2)
print(0 and 2)
print(nil and 2)
print(false and 2)
print("or")
print(1 or 2)
print(0 or 2)
print(nil or 2)
print(false or 2)
print(false or nil)
print("利用短路来实现三目运算符")
x=2
y=3
local tempValue=(x>y)and x or y
print(tempValue)
--如果x>y为true and 后面的x 被返回出来 下一步为 x or y 因为x有值,为真,x被返回出来
--如果x>y为false and 返回出来的是x>y ,因为x>y为false,所以y被返回出来
最后
以上就是自由墨镜为你收集整理的Lua--初学--多变量赋值,多返回值接取,and or的短路用法的全部内容,希望文章能够帮你解决Lua--初学--多变量赋值,多返回值接取,and or的短路用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复