Skip to content

运算符

运算符是 Lua 中用于执行各种操作的符号。本章节将介绍 Lua 中的各种运算符及其使用方法。

算术运算符

运算符描述示例
+加法10 + 5 = 15
-减法10 - 5 = 5
*乘法10 * 5 = 50
/除法10 / 5 = 2
%取模10 % 3 = 1
^幂运算2 ^ 3 = 8
lua
local a = 10
local b = 5

print(a + b)  -- 输出 15
print(a - b)  -- 输出 5
print(a * b)  -- 输出 50
print(a / b)  -- 输出 2
print(a % b)  -- 输出 0
print(a ^ b)  -- 输出 100000

比较运算符

运算符描述示例
==等于10 == 5 → false
~=不等于10 ~= 5 → true
>大于10 > 5 → true
<小于10 < 5 → false
>=大于等于10 >= 5 → true
<=小于等于10 <= 5 → false
lua
local a = 10
local b = 5

print(a == b)  -- 输出 false
print(a ~= b)  -- 输出 true
print(a > b)   -- 输出 true
print(a < b)   -- 输出 false
print(a >= b)  -- 输出 true
print(a <= b)  -- 输出 false

逻辑运算符

运算符描述示例
and逻辑与true and false → false
or逻辑或true or false → true
not逻辑非not true → false
lua
local a = true
local b = false

print(a and b)  -- 输出 false
print(a or b)   -- 输出 true
print(not a)    -- 输出 false
print(not b)    -- 输出 true

字符串连接运算符

使用 .. 运算符连接字符串:

lua
local str1 = "Hello"
local str2 = "World"
local str3 = str1 .. " " .. str2
print(str3)  -- 输出 Hello World

长度运算符

使用 # 运算符获取字符串或表的长度:

lua
-- 字符串长度
local str = "Hello"
print(#str)  -- 输出 5

-- 表长度
local t = {1, 2, 3, 4, 5}
print(#t)  -- 输出 5

赋值运算符

运算符描述示例
=赋值a = 10
+=加赋值a += 5 → a = a + 5
-=减赋值a -= 5 → a = a - 5
*=乘赋值a *= 5 → a = a * 5
/=除赋值a /= 5 → a = a / 5
%=取模赋值a %= 5 → a = a % 5
^=幂赋值a ^= 5 → a = a ^ 5
..=字符串连接赋值a ..= "World" → a = a .. "World"
lua
local a = 10
a += 5
print(a)  -- 输出 15

a -= 5
print(a)  -- 输出 10

a *= 5
print(a)  -- 输出 50

a /= 5
print(a)  -- 输出 10

a %= 3
print(a)  -- 输出 1

a ^= 2
print(a)  -- 输出 1

local b = "Hello"
b ..= " World"
print(b)  -- 输出 Hello World

运算符优先级

Lua 中运算符的优先级从高到低排列如下:

  1. ^ (幂运算)
  2. not, #, - (一元运算符)
  3. *, /, % (乘法、除法、取模)
  4. +, - (加法、减法)
  5. .. (字符串连接)
  6. <, >, <=, >=, ~=, == (比较运算符)
  7. and
  8. or

使用括号可以改变运算顺序:

lua
local a = 10 + 5 * 2
print(a)  -- 输出 20,因为乘法优先级高于加法

local b = (10 + 5) * 2
print(b)  -- 输出 30,因为括号改变了运算顺序

运算符的应用

示例 1:计算圆的面积

lua
local radius = 5
local area = math.pi * radius ^ 2
print(area)  -- 输出 78.539816339745

示例 2:判断奇偶性

lua
local num = 10
if num % 2 == 0 then
  print("偶数")
else
  print("奇数")
end

示例 3:字符串连接

lua
local name = "张三"
local age = 30
local info = "姓名:" .. name .. ",年龄:" .. age
print(info)  -- 输出 姓名:张三,年龄:30

示例 4:逻辑运算

lua
local score = 85
local attendance = 90

if score >= 60 and attendance >= 80 then
  print("及格")
else
  print("不及格")
end

小结

本章节介绍了 Lua 中的各种运算符,包括算术运算符、比较运算符、逻辑运算符、字符串连接运算符、长度运算符和赋值运算符,以及它们的优先级。掌握这些运算符,对于编写 Lua 程序非常重要。