文档文档

Flux 语言中的运算符

Flux 包括以下类型的运算符

另请参阅

算术运算符

算术运算符接受两个数值(字面量或变量),并执行计算,返回单个数值。

运算符描述示例结果
+加法1 + 12
-减法3 - 21
*乘法2 * 36
/除法9 / 33
^指数运算2 ^ 38
%取模10 % 50

在当前 Flux 版本中,算术运算中使用的值必须是相同的数值类型(整数或浮点数)。不同数值类型的值进行运算将导致类型错误。

比较运算符

比较运算符比较表达式,并根据比较结果返回 true 或 false。

运算符描述示例结果
==等于"abc" == "abc"true
!=不等于"abc" != "def"true
<小于1 < 2true
>大于1 > 2false
<=小于或等于1 <= 2true
>=大于或等于1 >= 2false
=~等于正则表达式"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 = yx = 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

运算符优先级

下表概述了运算符优先级。数字越小的运算符优先级越高。

优先级运算符描述
1a()函数调用
a[]成员或索引访问
.成员访问
2|>管道前向
3() => 1函数字面量
4^指数运算
5* / %乘法、除法和取模
6+ -加法和减法
7== !=比较运算符
< <=
> >=
=~ !~
8not一元逻辑运算符
exists空值检查运算符
9and逻辑与
10or逻辑或
11if then else条件运算符

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对您的代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最新的数据引擎,可以实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 以 Core 的基础为构建,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看