文档文档

字符串操作

字符串类型表示字符序列。字符串是不可变的,一旦创建就无法修改。

类型名称string

字符串语法

字符串字面量由双引号 (") 括起来的字符序列表示。除了未转义的双引号外,任何字符都可以出现在字符串字面量中。字符串字面量支持多种 转义序列使用 \x 作为前缀的十六进制编码

"abc"
"string with double \" quote"
"string with backslash \\"
"日本語"
"\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"

将数据类型转换为字符串

使用 string() 函数 将其他 基本类型 转换为字符串

  • boolean
  • bytes
  • duration
  • float
  • int
  • uint
  • time
string(v: 42)
// Returns "42"

将正则表达式转换为字符串

要将正则表达式转换为字符串

  1. 导入 regexp
  2. 使用 regexp.getString() 并提供要转换为字符串的正则表达式。
import "regexp"

regexp.getString(r: /[a-zA-Z]/)
// Returns [a-zA-Z] (string)

将数据类型转换为十六进制字符串

要将 基本类型 转换为十六进制字符串

  1. 导入 contrib/bonitoo-io/hex
  2. 使用 hex.string() 将其他值转换为十六进制字符串。
import "contrib/bonitoo-io/hex"

hex.string(v: 123456)
// Returns 1e240

将列转换为字符串

Flux 允许您迭代表流中的行并将列转换为字符串。

要将 _value 列转换为字符串,请使用 toString() 函数

toString() 仅对 _value 列进行操作。

data
    |> toString()
给定以下输入数据
_time_value (int)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4
上面的示例返回
_time_value (string)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4

要将任何列转换为字符串:

  1. 使用 map() 迭代并重写行。
  2. 使用 string() 将列值转换为字符串。
data
    |> map(fn: (r) => ({ r with level: string(v: r.level) }))
给定以下输入数据
_timelevel (int)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4
上面的示例返回
_timelevel (string)
2021-01-01T00:00:00Z1
2021-01-01T02:00:00Z2
2021-01-01T03:00:00Z3
2021-01-01T04:00:00Z4

对字符串进行操作

使用 Flux strings 包中的函数执行操作,包括

字符串插值

要在另一个 Flux 字符串中插入字符串,请将嵌入的表达式用美元符号和花括号 ${} 括起来。Flux 将占位符替换为嵌入式表达式的结果,并返回字符串字面量。

name = "John"
"My name is ${name}."
// My name is John.

d = 1m
"the answer is ${d}"
// the answer is 1m

t0 = 2016-06-13T17:43:50Z
"the answer is ${t0}"
// the answer is 2016-06-13T17:43:50.000000000Z

p = {name: "John", age: 42}
"My name is ${p.name} and I'm ${p.age} years old."
// My name is John and I'm 42 years old.

字符串插值表达式必须满足 Stringable 约束

连接字符串

要连接 Flux 字符串,请在字符串值或解析为字符串的表达式之间使用 + 运算符。Flux 解析表达式并返回单个连接的字符串。

连接的表达式必须解析为字符串。

name = "John"
"My name is " + name + "."
// My name is John.

d = 1m
"the answer is " + string(v: d)
// the answer is 1m

t0 = 2016-06-13T17:43:50Z
"the answer is " + string(v: t0)
// the answer is 2016-06-13T17:43:50.000000000Z

p = {name: "John", age: 42}
"My name is " + p.name + " and I'm " + string(v: p.age) + " years old."
// My name is John and I'm 42 years old.

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看