Функции типов и форматирования
|
В данном разделе при описании функций приняты следующие обозначения:
|
Функции проверки типов
is_array
Проверяет, является ли value массивом.
Спецификация функции
is_array(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимый массив
is_array([1, 2, 3])
true
Несоответствующий тип
is_array("строка")
false
is_boolean
Проверяет, является ли value логическим значением.
Спецификация функции
is_boolean(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимое логическое значение
is_boolean(false)
true
Несоответствующий тип
is_boolean("строка")
false
is_empty
Проверяет, имеет ли объект, массив или строка нулевую длину.
Спецификация функции
is_empty(value: <объект | массив | строка>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
объект массив строка |
Значение, которое необходимо проверить. |
да |
Примеры
Пустой массив
is_empty([])
true
Непустая строка
is_empty("строка")
false
Непустой объект
is_empty({"foo": "bar"})
false
is_float
Проверяет, является ли value числом с плавающей точкой.
Спецификация функции
is_float(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимое число с плавающей точкой
is_float(0.577)
true
Несоответствующий тип
is_float("строка")
false
is_integer
Проверяет, является ли value целым числом.
Спецификация функции
is_integer(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимое целое число
is_integer(1)
true
Несоответствующий тип
is_integer("строка")
false
is_ipv4
Проверяет, является ли value допустимым IPv4-адресом или нет.
IPv4-совместимые и IPv4-преобразованные IPv6-адреса не считаются допустимыми.
Спецификация функции
is_ipv4(value: <строка>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
IP-адрес, который необходимо проверить. |
да |
Примеры
Допустимый IPv4-адрес
is_ipv4("10.0.102.37")
true
Допустимый IPv6-адрес
is_ipv4("2001:0db8:85a3:0000:0000:8a2e:0370:7334")
false
Произвольная строка
is_ipv4("foobar")
false
is_ipv6
Проверяет, является ли value допустимым IPv6-адресом или нет.
Спецификация функции
is_ipv6(value: <строка>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
IP-адрес, который необходимо проверить. |
да |
Примеры
Допустимый IPv6-адрес
is_ipv6("2001:0db8:85a3:0000:0000:8a2e:0370:7334")
true
Допустимый IPv4-адрес
is_ipv6("10.0.102.37")
false
Произвольная строка
is_ipv6("foobar")
false
is_json
Проверяет, является ли value допустимым документом JSON.
Спецификация функции
is_json(value: <строка>, [variant: <строка>]) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
Значение, которое необходимо проверить |
да |
|
|
строка |
Вариант типа JSON для явной проверки:
|
нет |
Примеры
Допустимый JSON-объект
is_json("{}")
true
Недопустимое значение
is_json("{")
false
Точный вариант
is_json("{}", variant: "object")
true
Недопустимый точный вариант
is_json("{}", variant: "array")
false
is_null
Проверяет, является ли значение value пустым (null) или нет.
Для более гибкой проверки используйте функцию is_nullish.
|
Спецификация функции
is_null(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Значение null
is_null(null)
true
Несоответствующий тип
is_null("строка")
false
is_nullish
Определяет, является ли value "nullish", то есть не имеющим значимого содержания. "Nullish" считаются значения:
-
null; -
"-"; -
состоящие только из пробелов, то есть символов со свойством Unicode
White_Space.
Спецификация функции
is_nullish(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить на отсутствие значимого содержания |
да |
Примеры
Обнаружение null (пустая строка)
is_nullish("")
true
Обнаружение null (строка с дефисом)
is_nullish("-")
true
Обнаружение null (пустая строка)
is_nullish("
")
true
is_object
Проверяет, является ли value объектом.
Спецификация функции
is_object(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимый объект
is_object({"foo": "bar"})
true
Несоответствующий тип
is_object("строка")
false
is_regex
Проверяет, является ли value регулярным выражением.
Спецификация функции
is_regex(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимое регулярное выражение
is_regex(r'pattern')
true
Несоответствующий тип
is_regex("строка")
false
is_string
Проверяет, является ли value строкой.
Спецификация функции
is_string(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимая строка
is_string("строка")
true
Несоответствующий тип
is_string([1, 2, 3])
false
is_timestamp
Проверяет, является ли value меткой времени.
Спецификация функции
is_timestamp(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимая метка времени (timestamp)
is_timestamp(t'2021-03-26T16:00:00Z')
true
Несоответствующий тип
is_timestamp("строка")
false
rv_is_utf8
Проверяет, является ли value строкой, закодированной в UTF-8.
Спецификация функции
rv_is_utf8(value: <любой тип>)
:: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимая строка
rv_is_utf8("valid_string")
true
Недопустимая строка
rv_is_utf8(b"\xff123123")
false
Не строка
rv_is_utf8(123)
false
tag_types_externally
Добавляет информацию о типе ко всем вложенным скалярным значениям в предоставленном значении value.
Информация о типе добавляется в ключ, то есть после преобразования value имеет форму объекта с полями "тип": значение.
Спецификация функции
tag_types_externally(value: <любой тип>) :: <объект | массив объектов | пустое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое нужно пометить типами. |
да |
Примеры
Пометить тип в скалярном значении
tag_types_externally(123)
{
"integer": 123
}
Пометить типы в объекте
tag_types_externally({
"message": "Hello world",
"request": {
"duration_ms": 67.9
}
})
{
"message": {
"string": "Hello world"
},
"request": {
"duration_ms": {
"float": 67.9
}
}
}
Пометить типы в массиве
tag_types_externally(["foo", "bar"])
[
{
"string": "foo"
},
{
"string": "bar"
}
]
Типы в пустом значении
tag_types_externally(null)
null
Функции валидации типов
array
Возвращает value, если это массив, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является массивом и может использоваться в любой функции, которая его ожидает.
Спецификация функции
array(value: <любой тип>) :: <массив>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, проверяемое на предмет того, является ли оно массивом. |
да |
Ошибки
Функция array возвращает ошибку, для которой требуется обработка, если value не является массивом.
Пример
Объявление массива
array!(.value)
[ 1, 2, 3 ]
bool
Возвращает value, если это логическое значение, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является логическим и может использоваться в любой функции, которая его ожидает.
Спецификация функции
bool(value: <любой тип>) :: <логическое значение>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить на принадлежность к логическим. |
да |
Ошибки
Функция bool возвращает ошибку, для которой требуется обработка, если value не является логическим значением.
Пример
Объявление типа Boolean
bool!(.value)
false
float
Возвращает value, если это число с плавающей точкой, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является числом с плавающей точкой и может использоваться в любой функции, которая его ожидает.
Спецификация функции
float(value: <лобое>) :: <число с плавающей точкой>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить на тип float. |
да |
Ошибки
Функция float возвращает ошибку, для которой требуется обработка, если value не является числом с плавающей точкой.
Пример
Объявление типа float
float!(.value)
42
int
Возвращает value, если это целое число, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является целым числом и может использоваться в любой функции, которая его ожидает.
Спецификация функции
int(value: <любой тип>) :: <целое число>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, для которого необходимо убедиться, что оно является целым числом. |
да |
Ошибки
Функция int возвращает ошибку, для которой требуется обработка, если value не является целым числом.
Пример
Объявление переменной типа целое число
int!(.value)
42
validate_json_schema
Функция validate_json_schema проверяет, соответствует ли value схеме JSON. Функция оценивает соответствие содержимого JSON заданным параметрам. Это позволяет убедиться, что структура данных и их типы соответствуют ожиданиям, указанным в schema_definition.
Функция использует кэш скомпилированных схем. При первом обращении с конкретным параметром schema_definition она компилирует схему и сохраняет ее в кэше для последующих обращений. Это ускоряет проверку нескольких значений на соответствие одной и той же схеме. Кэш не обновляется при изменении схемы. Если вы обновили файл определения схемы, перезапустите Vector, чтобы очистить кэш.
|
Спецификация функции
validate_json_schema(value: <строка>, schema_definition: <строка>, [ignore_unknown_formats: <логическое значение>]) :: <логическое значение>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
Значение для проверки соответствия схеме JSON. |
да |
|
|
строка |
Путь к файлу определения схемы JSON. |
да |
|
|
логическое значение |
Переключатель игнорирования неизвестного формата данных без сообщений об ошибке. |
да |
Ошибки
Функция validate_json_schema может возвращать ошибки, для которых требуется обработка:
-
Строка
valueсодержит полезную нагрузку, которая не является допустимой для JSON. -
Строка
valueсодержит объявления пользовательских форматов, при этом аргументignore_unknown_formatsне установлен в значениеtrue. -
Файл, указанный в
schema_definition, не является допустимым определением схемы JSON. -
Файл, указанный в
schema_definition, отсутствует.
Примеры
Полезная нагрузка содержит валидный email
validate_json_schema!(s'{ "productUser": "valid@example.com" }', "tests/data/jsonschema/validate_json_schema/schema_with_email_format.json", false)
true
Полезная нагрузка содержит невалидный email
validate_json_schema!(s'{ "productUser": "invalidEmail" }', "tests/data/jsonschema/validate_json_schema/schema_with_email_format.json", false)
function call error for "validate_json_schema" at (0:142): JSON schema validation failed: "invalidEmail" is not a "email" at /productUser
Полезная нагрузка содержит объявление пользовательского формата
validate_json_schema!(s'{ "productUser": "a-custom-formatted-string" }', "tests/data/jsonschema/validate_json_schema/schema_with_custom_format.json", false)
function call error for "validate_json_schema" at (0:156): Failed to compile schema: Unknown format: 'my-custom-format'. Adjust configuration to ignore unrecognized formats
Полезная нагрузка содержит объявление пользовательского формата, а аргумент ignore_unknown_formats установлен в значение true
validate_json_schema!(s'{ "productUser": "a-custom-formatted-string" }', "tests/data/jsonschema/validate_json_schema/schema_with_custom_format.json", true)
true
object
Возвращает value, если это объект, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является объектом и может использоваться в любой функции, которая его ожидает.
Спецификация функции
object(value: <любой тип>) :: <объект>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое требуется проверить |
да |
Ошибки
Функция object возвращает ошибку, для которой требуется обработка, если value не является объектом.
Пример
Определение типа объекта
object!(.value)
{
"field1": "value1",
"field2": "value2"
}
string
Возвращает value, если это строка, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является строкой и может использоваться в любой функции, которая его ожидает.
Спецификация функции
string(value: <любой тип>) :: <строка>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, для которого нужно гарантировать тип строки. |
да |
Ошибки
Функция string возвращает ошибку, для которой требуется обработка, если value не является строкой.
Пример
Объявление типа строки
string!(.message)
"{\"поле\": \"значение\"}"
timestamp
Возвращает value, если это метка времени, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является меткой времени и может использоваться в любой функции, которая его ожидает.
Спецификация функции
timestamp(value: <любой тип>) :: <метка времени>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое нужно обеспечить меткой времени. |
да |
Ошибки
Функция timestamp возвращает ошибку, для которой требуется обработка, если value не является меткой времени.
Пример
Объявление типа метки времени
ok, err = timestamp(.timestamp)
function call error for "timestamp" at (10:31): expected timestamp, got string
Функции представлений чисел
format_int
Форматирует целое число value в строковое представление с использованием заданного основания.
Спецификация функции
format_int(value: <целое число>, [base: <целое число>]) :: <строка>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число |
Число для форматирования. |
да |
|
|
целое число |
Основание для форматирования числа. Должно быть между 2 и 36 включительно. |
|
нет |
Ошибки
Функция format_int возвращает ошибку, для которой требуется обработка, если основание не находится между 2 и 36.
Примеры
Форматирование как шестнадцатеричное число
format_int!(42, 16)
"2a"
Форматирование как отрицательное шестнадцатеричное число
format_int!(-42, 16)
"-2a"
format_number
Форматирует value в строковое представление числа.
Спецификация функции
format_number(value: <целое число | число с плавающей точкой>, [scale: <целое число>, decimal_separator: <строка>, grouping_separator: <строка>]) :: <строка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Число для форматирования в строку. |
да |
|
|
целое число |
Количество десятичных знаков для отображения. |
нет |
|
|
строка |
Символ, используемый между целой и десятичной частями числа. |
|
нет |
|
строка |
Символ, используемый между каждой тысячной частью числа. |
|
нет |
Пример
Форматирование числа с тремя десятичными знаками
format_number(1234567.89, 3, decimal_separator: ".", grouping_separator: ",")
"1,234,567.890"
parse_float
Разбирает строку value, представляющую число в десятичной системе счисления, в число с плавающей точкой.
Спецификация функции
parse_float(value: <строка>) :: <число с плавающей точкой>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
Строка для разбора. |
да |
Ошибки
Функция parse_float может возвращать ошибки, для которых требуется обработка:
-
valueне может быть разобрано как число. -
Значение
NaNне поддерживается.
Примеры
Разбор отрицательного числа
parse_float!("-42")
-42.0
Разбор числа с плавающей запятой
parse_float!("42.38")
42.38
Разбор экспоненциальной записи
parse_float!("2.5e3")
2500.0
parse_int
Разбирает строку value, представляющую число в указанной системе счисления, в целое число.
Спецификация функции
parse_int(value: <строка>, [base: <целое число>]) :: <целое число>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
Строка для разбора. |
да |
|
|
целое число |
Система счисления числа. Должна быть в диапазоне от 2 до 36 включительно. Если не указано, для определения системы счисления будет использоваться префикс строки:
|
нет |
Ошибки
Функция parse_int может возвращать ошибки, для которых требуется обработка:
-
Значение
baseне находится в диапазоне от 2 до 36; -
Число не может быть разобрано в указанной системе счисления.
Примеры
Разбор десятичного числа
parse_int!("-42")
-42
Разбор двоичного числа
parse_int!("0b1001")
9
Разбор восьмеричного числа
parse_int!("0o42")
34
Разбор шестнадцатеричного числа
parse_int!("0x2a")
42
Разбор числа с явно указанной системой счисления
parse_int!("2a", 17)
44
to_float
Приводит value к типу с плавающей точкой.
Спецификация функции
to_float(value: <целое число | число с плавающей точкой | логическое значение | строка | метка времени>) :: <число с плавающей точкой>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой логическое значение строка метка времени |
Значение для преобразования в число с плавающей точкой. Должно быть преобразуемым в число с плавающей точкой, иначе будет сгенерирована ошибка. |
да |
Характеристики функции
Поведение функции зависит от типа value:
-
При преобразовании логических значений
trueпринимает значение 1,false-- 0. -
Строки преобразуются, только если состоят из десятичных чисел, знаков и десятичной точки.
-
Метки времени преобразуются в формат времени Unix с указанием наносекунд.
Ошибки
Функция to_float может возвращать ошибки, для которых требуется обработка:
-
valueне является поддерживаемым представлением числа с плавающей точкой. -
value, представленное меткой времени, находится вне допустимого диапазона для меток времени.
Примеры
Приведение к числу с плавающей точкой
to_float!("3.145")
3.145
Приведение метки времени к числу с плавающей точкой
to_float(t'2020-12-30T22:20:53.824727Z')
1609366853.824727
Приведение строки к числу с плавающей точкой
to_float!(".5")
0.5
to_int
Приводит value к целому числу.
Спецификация функции
to_int(value: <целое число | число с плавающей точкой | логическое значение | строка | метка времени>) :: <целое число>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой логическое значение строка метка времени |
Значение для преобразования в целое число. |
да |
Характеристики функции
Поведение функции зависит от типа value:
-
При преобразовании чисел с плавающей точкой отбрасывается дробная часть.
-
При преобразовании логических значений
trueпреобразуется в1,falseв0. -
Строки преобразуются, только если состоят из десятичных чисел и знаков.
-
Метки времени преобразуются в формат времени Unix.
Ошибки
Функция to_int может возвращать ошибки, для которых требуется обработка:
-
valueявляется строкой, но текст не является целым числом -
valueне является строкой, числом или меткой времени
Примеры
Приведение строки к целому числу
to_int!("-02")
2
Приведение метки времени к целому числу
to_int(t'2020-12-30T22:20:53.824727Z')
1609366853
Приведение числа с плавающей точкой к целому числу
to_int(2.6)
2
Функции преобразования чисел
abs
Вычисляет модуль числа value.
Спецификация функции
abs(value: <целое число | число с плавающей точкой>) :: <целое число | число с плавающей точкой>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Число для вычисления модуля. |
да |
Примеры
Вычисление модуля целого числа
abs(-42)
42
Вычисление модуля числа с плавающей точкой
abs(-42.2)
42.2
ceil
Округляет value к большему до указанной точности precision.
Спецификация функции
ceil(value: <целое число | число с плавающей точкой>, [precision: <целое число>]) :: <целое число | число с плавающей точкой>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Число, которое нужно округлить вверх. |
да |
|
|
целое число |
Количество десятичных знаков для округления. |
|
нет |
Примеры
Округление числа к большему без указания точности
ceil(4.345)
5
Округление числа к большему с указанием точности
ceil(4.345, precision: 2)
4.35
floor
Округляет value вниз до указанной precision (точности).
Спецификация функции
floor(value: <целое число | число с плавающей точкой>, [precision: <целое число>]) :: <целое число | число с плавающей точкой>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Число, которое нужно округлить вниз. |
да |
|
|
целое число |
Количество десятичных знаков для округления. |
|
нет |
Примеры
Округление числа вниз без указания точности
floor(4.345)
4
Округление числа вниз с указанием точности
floor(4.345, precision: 2)
4.34
mod
Вычисляет остаток от деления value на modulus.
Спецификация функции
mod(value: <целое число | число с плавающей точкой>, modulus: <целое число | число с плавающей точкой>) :: <целое число | число с плавающей точкой>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Значение, для которого применяется деление по модулю. |
да |
|
|
целое число число с плавающей точкой |
Значение модуля. |
да |
Ошибки
Функция mod может возвращать ошибки, для которых требуется обработка:
-
valueне является целым числом или числом с плавающей точкой. -
modulusне является целым числом или числом с плавающей точкой. -
modulusравен 0.
Пример
Вычисление остатка от деления двух целых чисел
remainder = mod(5, 2)
1
round
Округляет value до указанной точности precision.
Спецификация функции
round(value: <целое число | число с плавающей точкой>, [precision: <целое число>]) :: <целое число | число с плавающей точкой>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Число для округления. |
да |
|
|
целое число |
Количество знаков после запятой для округления. |
|
нет |
Примеры
Округление числа без указания точности
round(4.345)
4
Округление числа с указанием точности
round(4.345, precision: 2)
4.35
Функции форматирования меток времени
format_timestamp
Форматирует value в строковое представление времени.
Спецификация функции
format_timestamp(value: <метка времени>, format: <строка>, [timezone: <строка>]) :: <строка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
метка времени |
Метка времени для форматирования в текст. |
да |
|
|
строка |
Строка формата, описанная в библиотеке Chrono. |
да |
|
|
строка |
Часовой пояс, используемый при форматировании метки времени. Используйте идентификатор TZ или 'local'. |
нет |
Примеры
Форматирование метки времени согласно ISO8601/RFC 3339
format_timestamp!(t'2020-10-21T16:00:00Z', format: "%+")
"2020-10-21T16:00:00+00:00"
Форматирование метки времени (пользовательский формат)
format_timestamp!(t'2020-10-21T16:00:00Z', format: "%v %R")
"21-Oct-2020 16:00"
from_unix_timestamp
Преобразует целое число value из формата времени Unix в формат времени VRL (timestamp).
Преобразует из количества секунд с начала эпохи Unix по умолчанию, но также можно указать миллисекунды или наносекунды с помощью параметра unit.
Спецификация функции
from_unix_timestamp(value: <целое число>, [unit: <строка>]) :: <метка времени>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число |
Целое число Unix-времени для преобразования |
да |
|
|
строка |
Единица измерения времени:
|
|
нет |
Ошибки
Функция from_unix_timestamp может возвращать ошибки, для которых требуется обработка:
-
valueне является целым числом. -
В аргументе
unitуказана неизвестная единица.
Примеры
Преобразование из формата Unix-времени (секунды)
from_unix_timestamp!(5)
1970-01-01T00:00:05Z
Преобразование из формата Unix-времени (миллисекунды)
from_unix_timestamp!(5000, unit: "milliseconds")
1970-01-01T00:00:05Z
Преобразование из формата Unix-времени (наносекунды)
from_unix_timestamp!(5000, unit: "nanoseconds")
1970-01-01T00:00:00.000005Z
parse_timestamp
Разбирает value в формате strptime.
По умолчанию функция использует системный часовой пояс для разбора меток времени. Для анализа временных меток без указания часового пояса, таких как 16/10/2019 12:00:00, можно использовать аргумент timezone.
Спецификация функции
parse_timestamp(value: <строка>, format: <строка>, [timezone: <строка>]) :: <метка времени>, <ошибка>
| Аргумент | Тип | Описание | Обязателен |
|---|---|---|---|
|
строка |
Текст времени. |
да |
|
строка |
Формат strptime. |
да |
|
строка |
Часовой пояс в формате tz database. |
нет |
Ошибки
Функция parse_timestamp может возвращать ошибки, для которых требуется обработка:
-
valueне удалось разобрать с использованием предоставленногоformat; -
valueне удалось разобрать с использованием предоставленногоtimezone.
Примеры
Разбор метки времени
parse_timestamp!("10-Oct-2020 16:00+00:00", format: "%v %R %:z")
2020-10-10T16:00:00Z
Разбор метки времени с указанием часового пояса
parse_timestamp!("16/10/2019 12:00:00", format: "%d/%m/%Y %H:%M:%S", timezone: "Asia/Taipei")
2019-10-16T04:00:00Z
to_unix_timestamp
Преобразует значение метки времени (value) в метку времени Unix.
По умолчанию возвращает количество секунд с момента начала эпохи Unix, но можно также указать миллисекунды микросекунды или наносекунды в аргументе unit.
Спецификация функции
to_unix_timestamp(value: <метка времени>, [unit: <строка>])
:: <целое число>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
метка времени |
Метка времени для преобразования в Unix. |
да |
|
|
строка |
Единица измерения времени:
|
|
нет |
Ошибки
Функция to_unix_timestamp может возвращать ошибки, для которых требуется обработка:
-
valueвне допустимого диапазона для меток времени. -
В аргументе
unitуказана неизвестная единица.
Примеры
Преобразование в метку времени Unix (секунды)
to_unix_timestamp(t'2021-01-01T00:00:00+00:00')
1609459200
Преобразование в метку времени Unix (миллисекунды)
to_unix_timestamp(t'2021-01-01T00:00:00Z', unit: "milliseconds")
1609459200000
Преобразование в метку времени Unix (наносекунды)
to_unix_timestamp(t'2021-01-01T00:00:00Z', unit: "nanoseconds")
1609459200000000000
Функции приведения строк и логических значений
to_bool
Приводит value к логическому значению.
Спецификация функции
to_bool(value: <логическое значение | целое число | число с плавающей точкой | пустое значение | строка>) :: <логическое значение>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
логическое значение целое число число с плавающей точкой пустое значение строка |
Значение для преобразования в логическое значение. |
да |
Ошибки
Функция to_bool возвращает ошибку, для которой требуется обработка, если value не является поддерживаемым представлением логического значения.
Примеры
Приведение строки к логическому значению
to_bool!("yes")
true
Приведение числа с плавающей точкой к логическому значению
to_bool(0.0)
false
Приведение целого числа к логическому значению
to_bool(0)
false
Приведение null к логическому значению
to_bool(null)
false
to_regex
Приводит value к регулярному выражению.
| Компиляция регулярного выражения — это ресурсозатратная операция и может ограничивать пропускную способность Vector. Используйте эту функцию, только если вы уверены, что в задаче невозможно обойтись без нее. |
Спецификация функции
to_regex(value: <строка>) :: <регулярное выражение>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
строка |
Значение для преобразования в регулярное выражение |
да |
Ошибки
Функция to_regex возвращает ошибку, для которой требуется обработка, если value не является строкой.
Пример
Приведение к регулярному выражению
to_regex("^foo$") ?? r''
^foo$
to_string
Приводит value к строке.
Спецификация функции
to_string(value: <целое число | число с плавающей точкой | логическое значение | строка | метка времени>) :: <число с плавающей точкой | пустое значение>) :: <строка>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой логическое значение строка метка времени пустое значение |
Значение для преобразования в строку |
да |
Ошибки
Функция to_string возвращает ошибку, для которой требуется обработка, если value не является целым числом, числом с плавающей точкой, логическим значением, строкой, меткой времени или пустым значением.
Примеры
Приведение логического значения к строке
to_string(true)
"true"
Приведение целого числа к строке
to_string(52)
"52"
Приведение числа с плавающей точкой к строке
to_string(52.2)
"52.2"
Была ли полезна эта страница?