4.特殊用法

image

多变量赋值

print("**********特殊用法************")
print("**********多变量赋值************")
local a,b,c = 1,2,"123"
print(a)
print(b)
print(c)
--多变量赋值 如果后面的值不够 会自动补空
a,b,c = 1,2 
print(a)
print(b)
print(c) --nil
--多变量赋值 如果后面的值多了 会自动省略
a,b,c = 1,2,3,4,5,6
print(a)
print(b)
print(c)

输出

**********特殊用法************
**********多变量赋值************
1
2
123
1
2
nil
1
2

多返回值

print("**********多返回值************")
function Test()
    return 10,20,30,40
end
--多返回值时 你用几个变量接 就有几个值
--如果少了 就少接几个 如果多了 就自动补空
a,b,c = Test()
print(a)
print(b)
print(c)

a,b,c,d,e = Test()
print(a)
print(b)
print(c)
print(d)
print(e)--nil

输出

**********多返回值************
10
20
30
10
20
30
40
nil

and和or

print("**********and or************")
--逻辑与 逻辑或
-- and or 他们不仅可以连接 boolean 任何东西都可以用来连接
-- 在lua中 只有 nil 和 false 才认为是假
-- "短路"——对于and来说  有假则假  对于or来说 有真则真
-- 所以 他们只需要判断 第一个 是否满足 就会停止计算了
print( 1 and 2 )
print( 0 and 1)
print( nil and 1)
print( false and 2)
print( true and 3)

print( true or 1 )
print( false or 1)
print( nil or 2)
--lua不支持三目运算符 
x = 1
y = 2
-- ? :
local res = (x>y) and x or y
print(res)

--(x>y) and x ——> x
-- x or y —— > x

--(x>y) and x ——> (x>y)
-- (x>y) or y ——> y

输出:

**********and or************
2
1
nil
false
3
true
1
2
2

这篇文章介绍了Lua编程语言中的三种特殊用法:

  1. 多变量赋值:支持同时为多个变量赋值,值不足时自动补nil,多余时自动省略。
  2. 多返回值:函数可返回多个值,接收变量数量决定实际获取的值数量,不足补nil。
  3. 逻辑运算符特殊行为:and/or可操作任意类型,遵循短路原则,并演示了用and-or模拟三目运算符的技巧。
    全文通过代码示例直观展示了这些特性的具体应用场景和运行结果。
最后修改:2025 年 06 月 04 日
如果觉得我的文章对你有用,请随意赞赏