lua 特殊用法(多变量赋值、函数多返回值、and or[短路])

简介: lua 特殊用法、多变量赋值、函数多返回值

多变量赋值

--多变量赋值
a,b,c='123',666,true
print(a)
print(b)
print(c)

在这里插入图片描述
这语言是真的骚,全自动赋值
变量少了,自动补空

--全自动赋值
--变量少了,自动补空
t1,t2,t3=1,2
print(t1)
print(t2)
print(t3)

在这里插入图片描述

--变量多了,自动裁剪
t1,t2,t3=1,2,6,7,8
print(t1)
print(t2)
print(t3)

在这里插入图片描述

函数多返回值

--多返回值赋值
function Test()
    return 1,2,3,4
end

--获得返回值也是一样的,全自动的,多退少补
a,b,c=Test()
print(a)
print(b)
print(c)
print('-------------------------------')
a,b,c,d,e,f=Test()
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)

在这里插入图片描述

and or(在lua内的逻辑运算符)

逻辑与或
and or 不仅可以与bool 其他任何东西也可以连


--lua中 只有 nil\false 才认为是假
--'短路'   对于and来说 有假则假   or来说 有真则真
--因此 只需要判断第一个是否满足 就会停止判断
print(1 and 2) --因为只有 nil\false 才认为是假,所以程序会继续执行到2
print(0 and 1) --同上
print(nil and 1) --因为只有 nil\false 才认为是假,所以程序停止执行下一个,返回nil

在这里插入图片描述

--or测试
--遇真则真,遇到真就不会再去计算后面的值了
print(1 or 2)
print(0 or 1)
print(nil or 1)

在这里插入图片描述
用lua 逻辑运算符实现三目运算

--lua虽然不支持三目运算符
--但我们可用lua 逻辑运算符实现
x=3
y=2
res = (x>y) and x or y
print(res)
--(x>y) and x -> x    and遇假则假
--x or y -> x         or遇真则真


x=1
res = (x>y) and x or y
print(res)
--(x>y)and x ->(x>y)
-- (x>y) or y -> y   (x>y)返回的是false(假) , or遇真则真,所以返回y

在这里插入图片描述
在这里插入图片描述

相关文章
|
1月前
|
存储 C语言 图形学
C 函数中如何保存 Lua 的数据(1)
C 函数中如何保存 Lua 的数据(1)
35 0
|
5月前
|
存储 Java C语言
lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
43 0
|
1月前
|
C语言 C++ 索引
C 函数中如何保存 Lua 的数据(2)
C 函数中如何保存 Lua 的数据(2)
24 1
|
11月前
[✔️]lua中的module函数
[✔️]lua中的module函数
113 0
lua语言——特殊用法
lua语言——特殊用法
195 0
|
C语言 索引
lua语言——函数
lua语言——函数
117 0
|
XML Java 数据格式
【Lua基础 第4章】Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
118 0
【Lua基础 第4章】Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
|
数据采集 大数据 开发者
Lua 语法函数|学习笔记
快速学习 Lua 语法函数
71 0
Lua 语法函数|学习笔记
06 Lua 库函数
Lua 体积小、启动速度快,一个完整的 Lua 解释器不过200k,在所有脚本引擎中,Lua 的速度可以说是最快的。所以 Lua 是作为嵌入式脚本的最佳选择。
06 Lua 库函数