[Lua]Lua语言基础汇总(2) -- 表达式

简介: 算术操作符Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。

算术操作符

Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。例如:x^0.5将计算x的平方根,x^3将计算x的3次方。


关系操作符

Lua提供的关系操作符有:”<”,”>”,”<=”,”>=”,”==”,”~=”;所有这些操作符的运算结果都是true或false。


操作符==用于相等性测试,操作符~=用于不等性测试。这两个操作符可以应用于任意两个值。如果两个值具有不同的类型,Lua就认为它们是不相等的;特别需要说明的是,nil只与其自身相等。


对于table、userdata和函数,Lua是作引用比较的。也就是说,只有当它们引用同一个对象时,才认为它们相等。


逻辑操作符

Lua提供的逻辑操作符有and、or和not。与条件控制语句一样,所有的逻辑操作符将false和nil视为假,而将其它的任何东西视为真。对于操作符and来说,如果它的第一个操作数为假,就返回第一个操作数;不然就返回第二个操作数。对于操作符or来说,如果它的第一个操作数为真,就返回第一个操作数;不然就返回第二个操作数。这里和C++等语言是存在区别的,Lua的逻辑操作符并不是简单的返回true或false,而是返回操作数的值。例如以下代码:

1
2
3
4
5
print(4 and 5)               -->5
print(nil and 13)          -->nil
print( false  and 13)     --> false
print(4 or 5)               -->4
print( false  or 5)          -->5


and和or都使用“短路求值”,也就是说,它们只会在需要时才去评估第二个操作数。


字符串连接

要在Lua中连接两个字符串,可以使用操作符“..”(两个点)。如果其任意一个操作数是数字的话,Lua会将这个数字转换成一个字符串。在Lua中,字符串是不可变的值,连接操作符只会创建一个新字符串,而不会对其原操作数进行任何修改。


table构造式

构造式是用于创建和初始化table的表达式。最简单的构造式就是一个空构造式{},用于创建一个空table。构造式还可以用于初始化数组,数组的下标从1开始。例如:

1
2
3
4
5
6
7
8
local tbDays ={ "Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" }
print(tbDays[1])          -->Sunday
print(tbDays[2])          -->Monday
print(tbDays[3])          -->Tuesday
print(tbDays[4])          -->Wednesday
print(tbDays[5])          -->Thursday
print(tbDays[6])          -->Friday
print(tbDays[7])          -->Saturday


Lua还提供了一种特殊的语法用于初始化table:

1
2
3
local tb1 = {x=10, y=20}
print(tb1.x)          -->10
print(tb1[ "x" ])          -->10


除此之外,Lua还提供了一种更通用的格式,这种格式允许在方括号之间,显式地用一个表达式来初始化索引值,例如:

1
2
local tb1 = {[ "+" ] =  "add" , [ "-" ] =  "sub" , [ "*" ] =  "mul" , [ "/" ] =  "div" }
print(tb1[ "+" ])


比如local tb1 = {x=10, y=20}这种构造方式,其实是和local tb1 = {["x"] = 10, ["y"] = 20}是等价的。在实际编程中,这两种构造式,都可以替换的用。

相关文章
|
Java API 索引
2023-5-4-Lua语言学习(二)
2023-5-4-Lua语言学习
67 0
|
存储 安全 关系型数据库
2023-5-4-Lua语言学习(一)
2023-5-4-Lua语言学习
86 0
|
存储 缓存 自然语言处理
小刚带你深入浅出理解Lua语言
前言这篇文章并不是针对某个知识点深入剖析,而是聚焦在Lua语言的关键知识点覆盖和关键使用问题列举描述。能够让学习者对Lua整体有个认识(使用一门新的语言不仅仅在用的时候适应它,而是知道怎么善于使用它),同时也可以作为一个工具文档在Lua中遇到具体问题的时候能从这里索引到相应的知识点和Lua的一些原理,得到启发。 1、Lua语言的特点简单的说Lua语言是一个可扩展的嵌入型的脚本语言。它具有以下的特点
小刚带你深入浅出理解Lua语言
|
C# 索引
lua语言——变量
lua语言——变量
146 0
lua语言——协同程序(协程)
lua语言——协同程序(协程)
136 0
lua语言——特殊用法
lua语言——特殊用法
251 0
|
存储
lua语言——多脚本执行
lua语言——多脚本执行
271 0
|
索引 容器
lua语言——迭代器
lua语言——迭代器
126 0
|
Java 索引
Lua语言——table(表)
Lua语言——table(表)
180 0
|
C语言 索引
lua语言——函数
lua语言——函数
153 0

相关实验场景

更多