Lua基础之运算符
2017-11-06 20:06
260 查看
Lua 运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:· 算术运算符
· 关系运算符
· 逻辑运算符
· 其他运算符
算术运算符
Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。例如:x^0.5将计算x的平方根,x^3将计算x的3次方。实例
我们可以通过以下实例来更加透彻的理解算术运算符的应用:a = 21
b = 10
c = a + b
print("Line 1 - c 的值为 ", c )
c = a - b
print("Line 2 - c 的值为 ", c )
c = a * b
print("Line 3 - c 的值为 ", c )
c = a / b
print("Line 4 - c 的值为 ", c )
c = a % b
print("Line 5 - c 的值为 ", c )
c = a^2
print("Line 6 - c 的值为 ", c )
c = -a
print("Line 7 - c 的值为 ", c )
关系运算符
下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20:Lua提供的关系操作符有:”<”,”>”,”<=”,”>=”,”==”,”~=”;所有这些操作符的运算结果都是true或false。
操作符==用于相等性测试,操作符~=用于不等性测试。这两个操作符可以应用于任意两个值。如果两个值具有不同的类型,Lua就认为它们是不相等的;特别需要说明的是,nil只与其自身相等。
对于table、userdata和函数,Lua是作引用比较的。也就是说,只有当它们引用同一个对象时,才认为它们相等。
实例
我们可以通过以下实例来更加透彻的理解关系运算符的应用:a = 21
b = 10
if( a == b )then
print("Line 1 - a 等于 b" )else
print("Line 1 - a 不等于 b" )end
if( a ~= b )then
print("Line 2 - a 不等于 b" )else
print("Line 2 - a 等于 b" )end
if ( a < b )then
print("Line 3 - a 小于 b" )else
print("Line 3 - a 大于等于 b" )end
if ( a > b ) then
print("Line 4 - a 大于 b" )else
print("Line 5 - a 小于等于 b" )end
-- 修改 a 和 b 的值
a = 5
b = 20if ( a <= b ) then
print("Line 5 - a 小于等于 b" )end
if ( b >= a ) then
print("Line 6 - b 大于等于 a" )end
逻辑运算符
Lua提供的逻辑操作符有and、or和not。与条件控制语句一样,所有的逻辑操作符将false和nil视为假,而将其它的任何东西视为真。对于操作符and来说,如果它的第一个操作数为假,就返回第一个操作数;不然就返回第二个操作数。对于操作符or来说,如果它的第一个操作数为真,就返回第一个操作数;不然就返回第二个操作数。这里和C++等语言是存在区别的,Lua的逻辑操作符并不是简单的返回true或false,而是返回操作数的值。例如以下代码: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
实例
我们可以通过以下实例来更加透彻的理解逻辑运算符的应用:a = true
b = true
if ( a and b )then
print("a and b - 条件为 true" )end
if ( a or b )then
print("a or b - 条件为 true" )end
print("---------分割线---------" )
-- 修改 a 和 b 的值
a = false
b = true
if ( a and b )then
print("a and b - 条件为 true" )else
print("a and b - 条件为 false" )end
if ( not( a and b) )then
print("not( a and b) - 条件为 true" )else
print("not( a and b) - 条件为 false" )end
and和or都使用“短路求值”,也就是说,它们只会在需要时才去评估第二个操作数。
其他运算符
要在Lua中连接两个字符串,可以使用操作符“..”(两个点)。如果其任意一个操作数是数字的话,Lua会将这个数字转换成一个字符串。在Lua中,字符串是不可变的值,连接操作符只会创建一个新字符串,而不会对其原操作数进行任何修改。a..b ,其中 a 为 "Hello " , b 为 "World", 输出结果为 "Hello World"。
# 一元运算符,返回字符串或表的长度。#"Hello" 返回 5
相关文章推荐
- Lua基础学习开篇——类型和运算符
- 【Lua基础学习】---Lua运算符
- Lua基础学习1——类型和运算符
- Lua 基础之运算符
- Lua基础---运算符
- Lua基础之math库总结(数学函数库)
- C语言基础学习运算符-基本算术运算符
- [Lua基础]包package——模块开发
- java学习之路-基础语法-运算符
- lua中的运算符与if语句
- Java基础知识学习之路-04-第三章-数据类型和运算符
- 算术运算符--Java基础008
- Java基础---Java运算符(十一)
- Python基础(2)-基本数据类型以及运算符介绍
- Lua基础之字符串
- Java基础语法(一)---关键字、常量、变量、运算符
- Lua基础(一)——赋值语句、表达式、流程控制、函数
- Lua语言基础
- python3基础-04 运算符
- C/C++基础笔试题1.1.2(运算符十问之解)