本页内容

运算符和优先级

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 * 414  (multiplication first)
    10 > 5 && 3 < 7true  (comparisons before AND)
  • 使用括号:

    (2 + 3) * 420  (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)

相关主题