itemis CREATE 状态机语言里的表达式(Expressions)及操作符

这段文档讲的是 itemis CREATE 状态机语言里的表达式(Expressions)及操作符,也就是在状态机里计算值、做条件判断时可以用的语法和运算符。我们可以分开理解:


一、表达式(Expression)概念

  • 表达式:由变量、常量和运算符组成的语法结构,计算后会得到一个值。
  • CREATE 里的表达式和一般编程语言(C、Java、Python)类似。
  • 逻辑表达式 返回 boolean 类型。

二、逻辑运算符(Logical Operators)

运算符 含义 示例
&& 逻辑与 (a > 0) && (b < 10)
` ` 逻辑或 `(a == 0) (b == 1)`
! 逻辑非 !flag
? : 条件表达式(三元运算符) y = x > 5 ? 1 : 2 等价于 if/else

三、位运算符(Bitwise Operators)

运算符 含义 示例
^ 按位异或 a ^ b
` ` 按位或 `a b`
& 按位与 a & b
~ 按位取反(补码) ~a
<< 左移 a << 2
>> 右移 a >> 1

四、逻辑关系运算符(Comparison / Relational Operators)

运算符 含义 示例
< 小于 x < y
<= 小于等于 x <= y
> 大于 x > y
>= 大于等于 x >= y
== 等于 x == y
!= 不等于 x != y

五、算术运算符(Arithmetic Operators)

1️⃣ 二元运算符(两个操作数)

运算符 含义 示例
+ a + b
- a - b
* a * b
/ a / b
% 取模 a % b

2️⃣ 一元运算符(一个操作数)

运算符 含义 示例
+ +a
- -a
~ 按位取反 ~a

六、使用示例

text 复制代码
internal:
    var x: integer = 5
    var y: integer
    var flag: boolean

    // 条件表达式
    y = x > 3 ? 10 : 0   // x>3则y=10,否则y=0

    // 逻辑运算
    flag = (x > 0) && (y < 20)

    // 位运算
    y = (x << 2) | 3      // 左移2位后按位或3

💡 理解要点

  1. CREATE 的表达式语法几乎和 C 语言一致
  2. 可以在 assignment、operation call 或 reaction guard 中使用
  3. 支持 逻辑、算术、条件、位运算,可以做复杂的判断和计算

如果你愿意,我可以帮你画一张 表达式运算符分类图,把逻辑、算术、位运算和条件表达式都整理在一张图里,直观理解。

你希望我画吗?

相关推荐
漂洋过海的鱼儿8 小时前
Reaction(反应)是怎么被触发的
yakindu