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 | FunctionLiteral |
4 | ^ | 指数运算 |
5 | * / % | 乘法、除法和取模 |
6 | + - | 加法和减法 |
7 | == != | 比较运算符 |
< <= | ||
> >= | ||
=~ !~ | ||
8 | not | 一元逻辑运算符 |
exists | 空值检查运算符 | |
9 | and | 逻辑 AND |
10 | or | 逻辑 OR |
11 | if then else | 条件运算符 |
此页面是否对您有帮助?
感谢您的反馈!