04 Lua 运算符

简介: Lua 体积小、启动速度快,一个完整的 Lua 解释器不过200k,在所有脚本引擎中,Lua 的速度可以说是最快的。所以 Lua 是作为嵌入式脚本的最佳选择。
我是陈皮,一个在互联网 Coding 的 ITer,个人微信公众号「陈皮的JavaLib」关注第一时间阅读最新技术文章。

运算符

赋值运算符

赋值运算符=可以将一个或者多个值赋值给一个或者多个变量。

name = "chenpi"
age = 18
a, b = 10, 20

print(name)  -- chenpi
print(age)   -- 18
print(a)     -- 10
print(b)     -- 20

而且还可以简单交互两个变量的值,如下

a, b = 10, 20
print(a)     -- 10
print(b)     -- 20

a, b = b, a
print(a)     -- 20
print(b)     -- 10

算数运算符

  • 加法:+
  • 减法:-
  • 乘法:*
  • 除法:/
  • 取模:%
  • 取负:-
  • 求幂:^
print(10 + 20)  -- 30
print(20 - 10)  -- 10
print(2 * 5)    -- 10
print(15 / 2)   -- 7.5
print(15 % 2)   -- 1
print(-20)      -- -20
print(2^5)      -- 32

比较运算符

  • 大于:>
  • 大于等于:>=
  • 小于:<
  • 小于等于:<=
  • 等于:==
  • 不等于:~=
print(10 > 20)   -- false
print(20 >= 10)  -- true
print(2 < 5)     -- true
print(15 <= 2)   -- false
print(15 == 12)  -- false
print(12 ~= 13)  -- true

关系运算符

  • 并且:and
  • 或者:or
  • 非:not

对于 and 运算符,如果第一个表达式为真,并且第二个表达式的运算结果不是一个布尔型的值时,会输出这个值。

print(10 > 5 and 2 ~= 3)    -- true
print(5 > 10 and 5)         -- false
print(5 < 10 and 5)         -- 5
print(5 < 10 and nil)       -- nil
print(5 < 10 and "chenpi")  -- chenpi

对于 or 运算符,如果第一个表达式为假,并且第二个表达式的运算结果不是一个布尔型的值时,会输出这个值。

print(10 > 5 or 2 ~= 2)  -- true
print(5 > 10 or 10 > 2)  -- true
print(5 < 2 or 5)        -- 5
print(5 < 2 or nil)      -- nil
print(5 < 2 or "chenpi") -- chenpi

not 取非,即将布尔值取反,在 Lua 中,只有 false 和 nil 代表 false,其他值都代表 true 。

print(not 5)                   -- false
print(not 0)                   -- false
print(not "chenpi")            -- false
print(not nil)                 -- true
print(not true)                -- false
print(not false)               -- true
print(not (5 > 4 and 5 == 3))  -- true
print(not type)                -- false
print(not print)               -- false

连接符

Lua 中对字符串的连接使用符号..,而不是像其他语言使用+,加号在 Lua 中代表运算。

name = "Hello" .. " " .. "ChenPi"
print(name)  -- Hello ChenPi

print("Lua " .. name .. "!") -- Lua Hello ChenPi!

age = 18
print(age .. " years old")  -- 18 years old

b = true
print("boolean:" .. b)  -- 不能连接boolean值,会报错 attempt to concatenate global 'b' (a boolean value)

print(address .. " area")  -- 不能连接一个未定义的变量,会报错 attempt to concatenate global 'address' (a nil value)

print(nil .. " area")  -- 不能连接一个nil值,会报错 attempt to concatenate a nil value

print(type .. " function")  -- 不能连接一个函数,会报错 attempt to concatenate global 'type' (a function value)


print("15" + 20)  -- 35 , 使用+的时候,会将数字字符串转为数字进行运算

print("a" + 10)   -- attempt to perform arithmetic on a string value

求长度运算符

#井号可以求字符串的长度,也可以求表中的元素个数。

t = {1, 2, "a", true}

print(#t)         -- 4
print(#t[3])      -- 1

print(#"chenpi")  -- 6

-- 遍历表中所有元素
for i = 1, #t do
    print(t[i])
end

借助井号,我们可以向数组(表如果所有键都是数字可认为是数字)尾部添加元素。

t = {"a", "b", "c"}
t[#t + 1] = "d"
t[#t + 1] = "e"

for i = 1, #t do
    print(t[i])
end

-- 输出 a b e d e

位操作运算符

print(1 << 3)    -- 8 位左移
print(8 >> 2)    -- 2 位右移
print(2 | 1)     -- 3 位异或
print(4 & 5)     -- 4 位与
print(~2)        -- -3 位取反

本次分享到此结束啦~~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,您的支持就是我创作最大的动力!

相关文章
Lua 运算符
Lua 支持算术、关系、逻辑和其他运算符,包括字符串连接 `..` 和一元长度运算符 `#`。`#` 运算符用于获取字符串或表的长度,如 `&quot;Hello&quot;` 的长度为 5。示例中,`a..b` 连接 &quot;Hello &quot; 和 &quot;World&quot; 输出 &quot;Hello World&quot;,并展示了不同字符串的长度。
Lua 运算符
Lua语言包含算术、关系、逻辑和其他运算符。逻辑运算符包括:`and`(两者都为真才为真)、`or`(其中之一为真即为真)和`not`(反向逻辑)。在给定的实例中,`and`和`or`的用法展示了如何根据变量`a`和`b`的真假值来判断条件。当`a`和`b`都为真时,`and`返回真,`or`也返回真。改变`a`和`b`的值后,`not`运算符用于反转逻辑条件。程序输出显示了不同条件下的结果。
Lua 运算符
Lua 支持算术、关系、逻辑和其他运算符。算术运算符包括加(+), 减(-), 乘(*), 除(/), 取余(%), 乘幂(^)和负号(-)。新引入的整除运算符(&gt;=lua5.3)是//。例如,A=10, B=20,A+B=30,A-B=-10,A*B=200,B/A=2,B%A=0,A^2=100,-A=-10。在 Lua 中,/执行浮点除法,//执行整除。例如,5/2=2.5,5//2=2。
Lua 运算符
Lua支持算术、关系、逻辑和其他运算符。算术运算符包括加(+), 减(-), 乘(*), 除(/), 取余(%), 乘幂(^)和负号(-)。例如,A=10, B=20时,A+B=30,A-B=-10,A*B=200,B/A=2,B%A=0,A^2=100,-A=-10。从lua5.3开始还支持整除运算符(//)。通过实例展示了这些运算符的运用,输出了不同的计算结果。
|
XML Java 数据格式
【Lua基础 第2章】lua遍历table的方式、运算符、math库、字符串操作方法
lua遍历table的方式、运算符、math库、字符串操作方法
609 0
【Lua基础 第2章】lua遍历table的方式、运算符、math库、字符串操作方法
Lua语言——运算符
Lua语言——运算符
120 0
|
数据采集 大数据 开发者
Lua 语法逻辑运算符与其他运算符|学习笔记
快速学习 Lua 语法逻辑运算符与其他运算符
76 0
|
数据采集 大数据 开发者
Lua 语法赋值运算符与算数运算符|学习笔记
快速学习 Lua 语法赋值运算符与算数运算符
111 0
|
C++
Lua基础---运算符
众所周知,C,C++,python等语言都有运算符,那么Lua也不例外,因为它是C写的嘛! Lua分为主要三类运算符,分别是算术运算符,关系运算符,逻辑运算符,还有特殊运算符。 1、算术运算符有: + (加)   -(减)   *(乘)  /(除)   %(取模)   ^(求幂)   -(符号) 来看一个例子:test6.
1007 0