跳到主要内容

结构体函数

名称说明
struct.entry点号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。
struct[entry]方括号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。
struct[idx]方括号语法,可作为从匿名 STRUCT(元组)按索引(从 1 开始)提取字段的 struct_extract 别名。
row(any, ...)创建一个包含参数值的匿名 STRUCT(元组)。
struct_concat(structs...)将多个 structs 合并为一个 STRUCT
struct_contains(struct, entry)检查 STRUCT 是否包含指定字段。
struct_extract(struct, 'entry')STRUCT 中提取具名字段。
struct_extract(struct, idx)通过索引(从 1 开始)从匿名 STRUCT(元组)提取字段。
struct_extract_at(struct, idx)通过索引(从 1 开始)从 STRUCT(元组)提取字段。
struct_insert(struct, name := any, ...)向现有 STRUCT 添加字段。
struct_pack(name := any, ...)创建包含参数值的 STRUCT,字段名使用绑定变量名。
struct_position(struct, entry)返回字段在 STRUCT 中的索引(从 1 开始);若未找到则返回 NULL
struct_update(struct, name := any, ...)为现有 STRUCT 添加或更新字段。

struct.entry

| 说明 | 点号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。 | | 示例 | ({'i': 3, 's': 'string'}).i | | 结果 | 3 |

struct[entry]

| 说明 | 方括号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。 | | 示例 | ({'i': 3, 's': 'string'})['i'] | | 结果 | 3 |

struct[idx]

| 说明 | 方括号语法,可作为从匿名 STRUCT(元组)按索引(从 1 开始)提取字段的 struct_extract 别名。 | | 示例 | (row(42, 84))[1] | | 结果 | 42 |

row(any, ...)

| 说明 | 创建一个包含参数值的匿名 STRUCT(元组)。 | | 示例 | row(i, i % 4, i / 4) | | 结果 | (10, 2, 2.5) |

struct_concat(structs...)

| 说明 | 将多个 structs 合并为一个 STRUCT。 | | 示例 | struct_concat(struct_pack(i := 4), struct_pack(s := 'string')) | | 结果 | {'i': 4, 's': string} |

struct_contains(struct, entry)

| 说明 | 检查 STRUCT 是否包含指定字段。 | | 示例 | struct_contains(row(1, 2, 3), 2) | | 结果 | true | | 别名 | struct_has |

struct_extract(struct, 'entry')

| 说明 | 从 STRUCT 中提取具名字段。 | | 示例 | struct_extract({'i': 3, 'v2': 3, 'v3': 0}, 'i') | | 结果 | 3 |

struct_extract(struct, idx)

| 说明 | 通过索引(从 1 开始)从匿名 STRUCT(元组)提取字段。 | | 示例 | struct_extract(row(42, 84), 1) | | 结果 | 42 |

struct_extract_at(struct, idx)

| 说明 | 通过索引(从 1 开始)从 STRUCT(元组)提取字段。 | | 示例 | struct_extract_at({'v1': 10, 'v2': 20, 'v3': 3}, 20) | | 结果 | 20 |

struct_insert(struct, name := any, ...)

| 说明 | 向现有 STRUCT 添加字段。 | | 示例 | struct_insert({'a': 1}, b := 2) | | 结果 | {'a': 1, 'b': 2} |

struct_pack(name := any, ...)

| 说明 | 创建包含参数值的 STRUCT,字段名使用绑定变量名。 | | 示例 | struct_pack(i := 4, s := 'string') | | 结果 | {'i': 4, 's': string} |

struct_position(struct, entry)

| 说明 | 返回字段在 STRUCT 中的索引(从 1 开始);若未找到则返回 NULL。 | | 示例 | struct_position(row(1, 2, 3), 2) | | 结果 | 2 | | 别名 | struct_indexof |

struct_update(struct, name := any, ...)

| 说明 | 为现有 STRUCT 添加或更新字段。 | | 示例 | struct_update({'a': 1, 'b': 2}, b := 3, c := 4) | | 结果 | {'a': 1, 'b': 3, 'c': 4} |