You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
VisitOrDefault(Variant<key1: K1, key2: K2, ...>{Flags:AutoMap}, [K1->R AS key1, [K2->R AS key2, ...]], R)->R
49
+
```
50
+
51
+
### Arguments
52
+
53
+
* For a variant over structure: accepts the variant as the positional argument and named arguments (handlers) corresponding to each field of the variant.
54
+
* For a variant over tuple: accepts the variant and handlers for each element of the variant as positional arguments.
55
+
*`VisitOrDefault` includes an additional positional argument for the default value, enabling the omission of certain handlers.
Copy file name to clipboardExpand all lines: ydb/docs/ru/core/yql/reference/yql-core/builtins/_includes/basic/variant.md
+61Lines changed: 61 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -46,3 +46,64 @@ SELECT
46
46
AsVariant(6, "foo") as VariantValue
47
47
```
48
48
49
+
## Visit, VisitOrDefault {#visit}
50
+
51
+
Обрабатывает возможные значения варианта, представленного структурой или кортежем, с использованием предоставленных функций-обработчиков для каждого из его полей/элементов.
52
+
53
+
### Сигнатура
54
+
55
+
```yql
56
+
Visit(Variant<key1: K1, key2: K2, ...>, K1->R AS key1, K2->R AS key2, ...)->R
VisitOrDefault(Variant<key1: K1, key2: K2, ...>{Flags:AutoMap}, [K1->R AS key1, [K2->R AS key2, ...]], R)->R
61
+
```
62
+
63
+
### Аргументы
64
+
65
+
* Для варианта над структурой функция принимает сам вариант в качестве позиционного аргумента и по одному именованному аргументу-обработчику для каждого поля этой структуры.
66
+
* Для варианта над кортежем функция принимает сам вариант и по одному обработчику на каждый элемент кортежа в качестве позиционных аргументов.
67
+
* Модификация `VisitOrDefault` принимает дополнительный последний позиционный аргумент, представляющий значение по умолчанию, и позволяет не указывать некоторые обработчики.
0 commit comments