Lua 运算符


Lua 运算符技术文档

基本概念

Lua 运算符用来处理变量或常量之间的运算,在程序设计中广泛应用,是程序语言中的必备元素。Lua 支持多种运算符,包括算术运算符、比较运算符、逻辑运算符和位运算符等。各种运算符都有其特定功能和优先级,合理地运用运算符可以使程序更加简洁、高效。

算数运算符

Lua 支持基本的算术运算符,包括加(+)、减(-)、乘(*)、除(/)和模(%)五种运算符。使用方法如下:

local a = 10
local b = 20

-- 加法
print(a + b)  -- 30

-- 减法
print(a - b)  -- -10

-- 乘法
print(a * b)  -- 200

-- 除法
print(a / b)  -- 0.5

-- 取模
print(a % b)  -- 10

比较运算符

Lua 支持六种比较运算符,包括等于(==)、不等于(~=~=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=),用于比较两个变量或常量的大小关系。使用方法如下:

local a = 10
local b = 20

-- 等于
print(a == b)  -- false

-- 不等于
print(a ~= b)  -- true
print(a ~~= b) -- true

-- 大于
print(a > b)  -- false

-- 小于
print(a < b)  -- true

-- 大于等于
print(a >= b) -- false

-- 小于等于
print(a <= b) -- true

逻辑运算符

Lua 支持三种逻辑运算符,包括与(and)、或(or)和非(not)三种运算符,用来对布尔类型的变量或表达式进行操作。使用方法如下:

local a = true
local b = false

-- 与运算
print(a and b)  -- false

-- 或运算
print(a or b)   -- true

-- 非运算
print(not a)    -- false

位运算符

Lua 支持常见的位运算符,包括按位与(&)、按位或(|)、按位异或(~)、左移(<<)、右移(>>)和按位非(~)。使用方法如下:

local a = 60  -- 二进制为0011 1100
local b = 13  -- 二进制为0000 1101

-- 按位与
print(a & b)  -- 12  二进制为0000 1100

-- 按位或
print(a | b)  -- 61  二进制为0011 1101

-- 按位异或
print(a ~ b)  -- 49  二进制为0011 0001

-- 左移
print(a << 2) -- 240 二进制为1111 0000

-- 右移
print(a >> 2) -- 15  二进制为0000 1111

-- 按位非
print(~a)     -- -61 二进制为1100 0011(补码表示)

运算符优先级

不同的运算符有不同的优先级,为了保证表达式的正确性,需要使用括号控制运算符优先级。下面是 Lua 运算符的优先级从高到低的顺序:

  1. () – 圆括号,最高优先级
  2. - ~ # not ^ – 一元运算符
  3. * / % – 乘、除、取模运算
  4. + - – 加、减运算
  5. .. – 字符串连接运算
  6. << >> – 位移运算
  7. & – 按位与运算
  8. ~ | – 按位异或、按位或运算
  9. < > <= >= ~= == – 比较运算符
  10. and – 逻辑与运算
  11. or – 逻辑或运算
  12. = += -= *= /= %= ^= <<= >>= &= ~= – 赋值及其相关运算符,最低优先级

结语

本文介绍了 Lua 比较常用的运算符及其优先级,对于初学者来说比较容易理解。在程序设计中,熟练掌握各种运算符的使用方法,合理地运用运算符可以使代码更加高效、简洁,提高编程效率。