在 GDScript 中,运算符是用于执行变量或值之间运算的符号。GDScript 的运算符设计非常直观,融合了 Python 的易读性和 C++ 的高效性。
以下是 GDScript 中主要运算符的详细分类和说明:
🧮 算术运算符
用于执行基本的数学运算。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 / 字符串或数组拼接 | 5 + 2/"A" + "B" | 7/"AB" |
- | 减法 | 5 - 2 | 3 |
* | 乘法 | 5 * 2 | 10 |
/ | 除法 | 5 / 2 | 2(注意:整数除法会截断小数) |
% | 取模 (取余) | 5 % 2 | 1(仅适用于整数) |
** | 幂运算 | 2 ** 3 | 8(即 2 的 3 次方) |
⚠️ 特别注意:
- 整数除法:如果
/两边的操作数都是整数(如5 / 2),结果会是整数2而不是2.5。如果需要浮点数结果,请确保至少有一个操作数是浮点数(如5.0 / 2或5 / 2.0)。 - 浮点数取模:
%运算符仅适用于整数。如果你需要对浮点数取余,请使用fmod(a, b)函数。 - 幂运算结合性:
**是左结合的,即2 ** 2 ** 3等同于(2 ** 2) ** 3。
⚖️ 比较运算符
用于比较两个值,返回true或false。
| 运算符 | 描述 | 示例 |
|---|---|---|
== | 等于 | x == y |
!= | 不等于 | x != y |
> | 大于 | x > y |
< | 小于 | x < y |
>= | 大于等于 | x >= y |
<= | 小于等于 | x <= y |
💡 提示:在比较浮点数时,由于精度问题,直接使用==可能会有风险。建议使用is_equal_approx(a, b)函数来比较浮点数是否近似相等。
🔀 逻辑运算符
用于组合或反转布尔值。GDScript 同时支持 Python 风格和 C/JavaScript 风格的逻辑运算符,但官方推荐使用 Python 风格以提高可读性。
| 运算符 | 描述 | 示例 |
|---|---|---|
and/&& | 逻辑与 | true and false(结果为false) |
or/ ` | ` | |
not/! | 逻辑非 | not true(结果为false) |
🔢 位运算符
用于对整数进行二进制位的操作。
| 运算符 | 描述 |
|---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
~ | 按位取反 |
<< | 左移 |
>> | 右移 |
📝 赋值运算符
用于给变量赋值。
| 运算符 | 描述 | 示例 | 等同于 |
|---|---|---|---|
= | 赋值 | x = 5 | - |
+= | 加后赋值 | x += 2 | x = x + 2 |
-= | 减后赋值 | x -= 2 | x = x - 2 |
*= | 乘后赋值 | x *= 2 | x = x * 2 |
/= | 除后赋值 | x /= 2 | x = x / 2 |
%= | 取模后赋值 | x %= 2 | x = x % 2 |
注意:GDScript不支持++(自增) 和--(自减) 运算符。请使用x += 1或x -= 1代替。
🎯 其他运算符
| 运算符 | 描述 | 示例 |
|---|---|---|
in | 成员测试,检查某物是否包含在数组或字符串中 | "a" in ["a", "b"](结果为true) |
is | 类型检查,检查对象是否是某个类的实例 | node is Sprite2D |
? : | 三元运算符 | var result = "yes" if condition else "no" |
$ | 节点路径简写 | $Sprite2D等同于get_node("Sprite2D") |