这段文档讲的是 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
💡 理解要点:
- CREATE 的表达式语法几乎和 C 语言一致
- 可以在 assignment、operation call 或 reaction guard 中使用
- 支持 逻辑、算术、条件、位运算,可以做复杂的判断和计算
如果你愿意,我可以帮你画一张 表达式运算符分类图,把逻辑、算术、位运算和条件表达式都整理在一张图里,直观理解。
你希望我画吗?