Flux 语言中的运算符
Flux 包含以下类型的运算符
另请参阅
算术运算符
算术运算符接受两个数值(可以是文字或变量)并执行返回单个数值的计算。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
+ | 加法 | 1 + 1 | 2 |
- | 减法 | 3 - 2 | 1 |
* | 乘法 | 2 * 3 | 6 |
/ | 除法 | 9 / 3 | 3 |
^ | 指数 | 2 ^ 3 | 8 |
% | 模数 | 10 % 5 | 0 |
在当前的 Flux 版本中,用于算术操作的所有值必须具有相同的数值类型(整数或浮点数)。使用不同数值类型的值将导致类型错误。
比较运算符
比较运算符比较表达式并根据比较结果返回 true 或 false。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
== | 等于 | "abc" == "abc" | true |
!= | 不等于 | "abc" != "def" | true |
< | 小于 | 1 < 2 | true |
> | 大于 | 1 > 2 | false |
<= | 小于或等于 | 1 <= 2 | true |
>= | 大于或等于 | 1 >= 2 | false |
=~ | 等于正则表达式 | "abc" =~ /[a-z]*/ | true |
!~ | 不等于正则表达式 | "abc" !~ /[0-9]*/ | true |
运算符 >
和 <
也可以比较字符串的字典顺序。
逻辑运算符
运算符 | 描述 |
---|---|
not | 如果右操作数是 false ,则返回 true 。否则,返回 false 。 |
exists | 如果右操作数是 null,则返回 false 。否则,返回 true 。 |
and | 如果两个操作数都为 true,则返回 true 。否则,返回 false 。 |
or | 如果任一操作数为 true,则返回 true 。否则,返回 false 。 |
短路求值
Flux 逻辑运算符观察其他编程语言中看到的短路行为。左手(LH)操作数的评估决定是否评估右手(RH)操作数。
- 当运算符为
and
且 LH 操作数评估为false
时,评估返回false
而不评估 RH 操作数。 - 当运算符为
or
且 LH 操作数评估为true
时,评估返回true
而不评估 RH 操作数。
赋值运算符
赋值运算符根据其右操作数的值将其左操作数赋值。
运算符 | 描述 | 示例 | 含义 |
---|---|---|---|
= | 将左表达式的值赋给右表达式 | x = y | x = y |
函数运算符
函数运算符便于创建函数并控制通过操作的数据流。
运算符 | 描述 | 示例 | 含义 |
---|---|---|---|
|> | 管道-前向 | data |> function() | "data" 变量中的表被管道传输到函数中。 |
<- | 管道-接收 | tables=<- | “tables”变量或参数被分配给操作中通过管道传入的数据。此运算符用于传递给函数的任何数据类型;而不仅仅是表数据。 |
=> | 箭头 | (r) => r.tag1 == "tagvalue" | 箭头将记录或参数传递到函数操作中。 |
() | 函数调用 | top(n:10) | 调用top 函数,将n 参数设置为10 并执行相关操作。 |
请参阅定义自定义函数以获取函数运算符的示例。
字符串运算符
字符串运算符用于连接或比较字符串值。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
+ | 连接 | "ab" + "c" | "abc" |
< | 字典序小于 | "ant" < "bee" | true |
> | 字典序大于 | "ant" > "bee" | false |
文字构造函数
字面构造函数定义固定值。
运算符 | 描述 |
---|---|
[ ] | 列表/数组 |
{ } | 记录 |
"" | 字符串 |
其他运算符
运算符 | 描述 | 示例 |
---|---|---|
( ) | 逻辑分组 | r._value / (r._value * 2) |
, | 序列分隔符 | item1, item2, item3 |
: | 键值分隔符 | {name: "Bob"} |
. | 成员访问/点引用 | r._measurement |
运算符优先级
下表概述了运算符优先级。数字较低的运算符具有更高的优先级。
优先级 | 运算符 | 描述 |
---|---|---|
1 | a() | 函数调用 |
a[] | 成员或索引访问 | |
. | 成员访问 | |
2 | |> | 管道前进 |
3 | () => 1 | 函数字面量 |
4 | ^ | 指数 |
5 | * / % | 乘法、除法和取模 |
6 | + - | 加法和减法 |
7 | == != | 比较运算符 |
< <= | ||
> >= | ||
=~ !~ | ||
8 | not | 一元逻辑运算符 |
exists | 空值检查运算符 | |
9 | and | 逻辑与 |
10 | or | 逻辑或 |
11 | if then else | 条件 |
这个页面有帮助吗?
感谢您的反馈!