运算符是每种编程语言内建的基本命令。它们为使用者提供了执行基本数学运算和逻辑运算的能力。
需求[ | ]
要理解这篇文章,你需要阅读下列文章:
术语[ | ]
- 运算数
- operand 是任何赋予运算符的值。
- 表达式
- 表达式是任何返回一个值的代码。阅读 Expression获取更多信息。
- 一元运算符
- 一元运算符是只需要一个运算数的运算符。
- 一元运算:
运算符 expression
- 二元运算符
- 二元运算符需要两个运算数。
- 二元运算:
expression 运算符 expression
赋值运算符[ | ]
赋值运算符用来给 variable 赋值。闪点行动只提供了一个赋值运算符。 赋值:
identifier = expression
示例 1:
a = b
你或许认为这个运算符比较了a和 b,但事实并非如此。 = 只是将左值赋给右值。不存在其他编程语言中可以看到的如同 +=, -= 等的运算符。
示例 2:
a = b*c
算术运算符[ | ]
还记得学校里学过的算术运算吗?和这里是一样的。
算术运算符的运算数必须是 Numbers。算术运算符总是返回一个 Number。
运算符 | 名称 | 示例 |
---|---|---|
- | 负 | -a, +-a, -+a |
+ | 正 | +a |
( | 括号 | (expression) |
运算数 | 名称 | 示例 |
---|---|---|
+ | 加法 | a + b |
- | 减法 | a - b |
* | 乘法 | a * b |
/ | 除法 | a / b |
% | 取余 | a % b |
mod | 取余 | a mod b |
^ | 次幂 | a ^ b |
取余 返回除法a / b的余数。
还可参考: Math Commands
逻辑运算符[ | ]
逻辑运算符计算 Boolean 值。所有逻辑运算的运算数都是Booleans。
一个逻辑运算符总是返回一个 Boolean值。
运算符 | 名称 | 示例 |
---|---|---|
! | 非 | !a |
not | 非 | not a |
Not-运算符总是返回一个取反的 Boolean 值。如果一个Boolean a 为 true, !a 返回 false 反之同理。
运算符 | 名称 | 示例 |
---|---|---|
&& | 和 | a && b |
and | 和 | a and b |
|| | 或 | a || b |
or | 或 | a or b |
- 和 只返回 true如果两个运算数均为 true
- 或 返回 true 如果一个或两个运算数为 true
没有异或,或非 和 与非 运算符。但这些可以通过基本运算符的来模拟:
名称 | 结合 |
---|---|
异或 | ((a || b) && !(a && b)) |
或非 | !(a || b) |
与非 | !(a && b) |
- 异或 返回true 如果两个值中只有一个为 true
- 或非 返回true 如果两个值都不为 true
- 与非 返回true 如果两个值不同时为true
比较运算符[ | ]
比较运算符用来对比两个值。比较运算的运算数类型可以是Number, Side, String, Object, Group, Structured Text, Config, Display 或者 Control。
比较运算总是返回一个Boolean: 如果比较匹配,返回true否则返回 false。
运算符 | 名称 | 示例 |
---|---|---|
== | 等于 | a == b |
!= | 不等于 | a != b |
< | 小于 | a < b |
> | 大于 | a > b |
<= | 小于或等于 | a <= b |
>= | 大于或等于 | a >= b |
注意:你无法比较 Boolean 值。将一个 Boolean值与true 比较等同于它本身。将一个 Boolean 值与false 比较等同于将该值取反。
a == true // 无效,但等同于 a
a == false // 无效,但等同于 !a
数组运算符[ | ]
脚本语言提供了内置运算符来处理数组。所有运算数类型都必须是 Array。
数组运算符的返回值仍旧是一个 Array。
运算符 | 名称 | 示例 |
---|---|---|
+ | 复制 | +myArray |
通常,数组通过引用分配。这意味着,如果将数组a分配给数组b,然后更改a,则b也会更改。如果没有特殊考虑,可使用复制运算符可避免这种效果。
示例 1:
_arrayA = [1,2]; _arrayB = _arrayA; _arrayA set [0,5]; _arrayA => [5,2] _arrayB => [5,2]
示例 2:
_arrayA = [1,2]; _arrayB = +_arrayA; _arrayA set [0,5]; _arrayA => [5,2] _arrayB => [1,2]
运算符 | 名称 | 示例 |
---|---|---|
+ | 连接 | myArray1 + myArray2 |
- | 移除 | myArray1 - myArray2 |
- + 将第二个运算数加到第一个运算数的末尾
- - 从第一个运算数中移除第二个运算数中的所有元素
示例 1:
_arrayA = [1,2]; _arrayB = [3,2,4]; _arrayC = _arrayA + _arrayB; _arrayC => [1,2,3,2,4]
示例 2:
_arrayA = [1,2,3,2,4]; _arrayB = [2,3]; _arrayC = _arrayA - _arrayB; _arrayC => [1,4]
字符串运算符[ | ]
脚本语言提供了一个单字符运算符来连接两个字符串。两个运算数都必须是Strings。
一个字符串运算符的返回值是 String。
运算符 | 名称 | 示例 |
---|---|---|
+ | 连接 | myString1 + myString2 |
- + 把第二个运算数加到第一个运算数的末尾
示例:
_stringA = "Hello "; _stringB = "World!"; _stringC = _stringA + _stringB; _stringC => "Hello World!"