文档文档

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() => 1FunctionLiteral
4^指数运算
5* / %乘法、除法和取模
6+ -加法和减法
7== !=比较运算符
< <=
> >=
=~ !~
8not一元逻辑运算符
exists空值检查运算符
9and逻辑 AND
10or逻辑 OR
11if then else条件运算符

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core,是我们新的开源产品。它是一个用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看