运算符和优先级
ProcessMind表达式支持多种运算符,用于算术计算、比较和逻辑运算。
运算符
算术运算符
| 符号 | Name | 说明 | 示例 | 结果 |
|---|---|---|---|---|
| + | 加法 | 将两个数字相加或连接字符串 | 5 + 3 | 8 |
| - | 减法 | 用第一个数字减去第二个数字 | 10 - 4 | 6 |
| * | 乘法 | 将两个数字相乘 | 6 * 7 | 42 |
| / | 除法 | 用第一个数字除以第二个数字 | 15 / 3 | 5 |
比较运算符
| 符号 | Name | 说明 | 示例 | 结果 |
|---|---|---|---|---|
| == | 等于 | 检查两个值是否相等 | Status == "Active" | true或false |
| != | 不等于 | 检查两个值是否不相等 | Status != "Deleted" | true或false |
| < | 小于 | 检查第一个值是否小于第二个值 | Amount < 100 | true或false |
| > | 大于 | 检查第一个值是否大于第二个值 | Amount > 1000 | true或false |
| <= | 小于或等于 | 检查第一个值是否小于或等于第二个值 | Count <= 10 | true或false |
| >= | 大于或等于 | 检查第一个值是否大于或等于第二个值 | Score >= 80 | true或false |
| in | 列表包含 | 检查值是否在值列表中 | Status in ["A", "B", "C"] | true或false |
逻辑运算符
| 符号 | Name | 说明 | 示例 | 结果 |
|---|---|---|---|---|
| && | 逻辑AND | 如果两个条件都为true,则返回true | Amount > 100 && Status == "Active" | true或false |
| and | 逻辑AND(关键字) | &&的别名。如果两个条件都为true,则返回true | Amount > 100 and Status == "Active" | true或false |
| || | 逻辑OR | 如果至少一个条件为true,则返回true | Priority == "High" || Urgent == true | true或false |
| or | 逻辑OR(关键字) | ||的别名。如果至少一个条件为true,则返回true | Priority == "High" or Urgent == true | true或false |
| ! | 逻辑NOT | 对布尔值取反 | !IsDeleted | true或false |
| not | 逻辑NOT(关键字) | !的别名。对布尔值取反 | not IsDeleted | true或false |
优先级
优先级较高的运算符会先计算。您可以使用括号覆盖默认优先级。
| 优先级 | Category | 运算符 | Associativity |
|---|---|---|---|
| 1 | 逻辑OR | || , or | 从左到右 |
| 2 | 逻辑AND | && , and | 从左到右 |
| 3 | 相等 | == , != | 从左到右 |
| 4 | 比较 | < , > , <= , >= , in | 从左到右 |
| 5 | 加法/减法 | + , - | 从左到右 |
| 6 | 乘法/除法 | * , / | 从左到右 |
| 7 | 一元运算 | ! , not , - | 从右到左 |
| 8 | 函数调用 | () | 从左到右 |
| 9 | 括号 | ( ) | — |
运算符说明
-
**使用
+**连接字符串:+运算符在任一操作数为字符串时也会连接字符串:"Hello" + " " + "World" → "Hello World" -
in运算符等同于多个OR比较:Status in ["Pending", "Active", "Review"] // is the same as: Status == "Pending" || Status == "Active" || Status == "Review"
示例
-
组合条件:
// Both conditions must be true Amount > 1000 && Region == "Europe" // At least one condition must be true Priority == "High" or Escalated == true // Negation not IsArchived
三元运算符
三元运算符为简单的if/else逻辑提供简写形式:
-
语法:
condition ? valueIfTrue : valueIfFalse -
示例:
Amount > 1000 ? "High" : "Low" -
等同于:
if(Amount > 1000, "High", "Low")
优先级示例
-
不使用括号:
2 + 3 * 4 → 14 (multiplication first) 10 > 5 && 3 < 7 → true (comparisons before AND) -
使用括号:
(2 + 3) * 4 → 20 (addition first)
特殊语法
-
带引号的标识符:如果列名包含空格或特殊字符,请使用反引号:
`Order Amount` * 0.1 `Customer Name` `2024 Revenue` -
字符串转义:在字符串中使用反斜杠转义特殊字符:
"Line 1\nLine 2" // newline "Tab\there" // tab "Say \"Hello\"" // double quote "Path\\to\\file" // backslash -
空值:使用null表示缺失值:
if(Department == null, "Unknown", Department)或者使用isNull()函数:
if(isNull(Department), "Unknown", Department)
相关主题
- 表达式概览:所有表达式函数。