Documentation

Flux语言中的运算符

Flux 包含以下类型的操作符:

另请参见:

算术运算符

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

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

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

比较运算符

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

操作符描述示例结果
==等于"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。否则,返回 false
or如果任何操作数为真,则返回 true。否则,返回 false

短路求值

Flux 逻辑运算符观察到其他编程语言中的短路行为。左操作数 (LH) 的计算决定了右操作数 (RH) 是否被计算。

  • 当操作符是 and 并且左操作数的值为 false 时,结果返回 false 而不评估右操作数。
  • 当运算符为 or 且左侧操作数的值为 true 时,评估结果返回 true 而不需要评估右侧操作数。

赋值运算符

赋值运算符根据其右操作数的值将一个值赋给左操作数。

运算符描述示例含义
=将左侧表达式的值赋给右侧表达式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 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

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

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