- Lua 教程
- Lua - 首页
- Lua 基础
- Lua - 概述
- Lua - 环境
- Lua - 基本语法
- Lua - 注释
- Lua - 打印 Hello World
- Lua - 变量
- Lua - 数据类型
- Lua - 运算符
- Lua - 循环
- Lua - 决策
- Lua - 函数
- Lua - 日期和时间
- Lua 数组
- Lua - 数组
- Lua - 多维数组
- Lua - 数组长度
- Lua - 遍历数组
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 在列表中搜索
- Lua 模块
- Lua - 模块
- Lua - 命名空间
- Lua 元表
- Lua - 元表
- Lua 协程
- Lua - 协程
- Lua 文件处理
- Lua - 文件 I/O
- Lua 库
- Lua - 标准库
- Lua - 数学库
- Lua - 操作系统功能
- Lua 有用资源
- Lua - 快速指南
- Lua - 有用资源
- Lua - 讨论
Lua - 运算符
运算符是一个告诉解释器执行特定数学或逻辑操作的符号。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 |
关系运算符
下表显示了 Lua 语言支持的所有关系运算符。假设变量A为 10,变量B为 20,则:
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 检查两个操作数的值是否相等,如果相等则条件为真。 | (A == B) 为假。 |
| ~= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (A ~= B) 为真。 |
| > | 检查左操作数的值是否大于右操作数的值,如果大于则条件为真。 | (A > B) 为假。 |
| < | 检查左操作数的值是否小于右操作数的值,如果小于则条件为真。 | (A < B) 为真。 |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果大于或等于则条件为真。 | (A >= B) 为假。 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果小于或等于则条件为真。 | (A <= B) 为真。 |
逻辑运算符
下表显示了 Lua 语言支持的所有逻辑运算符。假设变量A为真,变量B为假,则:
| 运算符 | 描述 | 示例 |
|---|---|---|
| and | 称为逻辑 AND 运算符。如果两个操作数都不为零,则条件为真。 | (A and B) 为假。 |
| or | 称为逻辑 OR 运算符。如果两个操作数中的任何一个都不为零,则条件为真。 | (A or B) 为真。 |
| not | 称为逻辑 NOT 运算符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑 NOT 运算符将使其为假。 | !(A and B) 为真。 |
杂项运算符
Lua 语言支持的杂项运算符包括连接和长度。
| 运算符 | 描述 | 示例 |
|---|---|---|
| .. | 连接两个字符串。 | a..b,其中 a 为 "Hello ",b 为 "World",将返回 "Hello World"。 |
| # | 一元运算符,返回字符串或表的长度。 | #"Hello" 将返回 5 |
Lua 中的运算符优先级
运算符优先级决定了表达式中项的分组方式。这会影响表达式的求值方式。某些运算符的优先级高于其他运算符;例如,乘法运算符的优先级高于加法运算符:
例如,x = 7 + 3 * 2; 这里 x 被赋值为 13,而不是 20,因为运算符 * 的优先级高于 +,所以它先与 3*2 相乘,然后加到 7 中。
这里,优先级最高的运算符出现在表的上方,优先级最低的出现在下方。在表达式中,优先级较高的运算符将首先被计算。
| 类别 | 运算符 | 结合性 |
|---|---|---|
| 一元 | not # - | 右到左 |
| 连接 | .. | 右到左 |
| 乘法 | * / % | 左到右 |
| 加法 | + - | 左到右 |
| 关系 | < > <= >= == ~= | 左到右 |
| 相等 | == ~= | 左到右 |
| 逻辑 AND | and | 左到右 |
| 逻辑 OR | or | 左到右 |
广告