Функции типов и форматирования
|
В данном разделе при описании функций приняты следующие обозначения:
|
Функции проверки типов
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_empty
Проверяет, имеет ли объект, массив или строка нулевую длину.
Спецификация функции
is_empty(value: <объект | массив | строка>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
объект массив строка |
Значение, которое необходимо проверить. |
да |
Примеры
Пустой массив
is_empty([])
true
Непустая строка
is_empty("строка")
false
Непустой объект
is_empty({"foo": "bar"})
false
is_boolean
Проверяет, является ли value логическим значением.
Спецификация функции
is_boolean(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любое |
Значение, которое необходимо проверить |
да |
Примеры
Допустимое логическое значение
is_boolean(false)
true
Несоответствующий тип
is_boolean("строка")
false
is_integer
Проверяет, является ли value целым числом.
Спецификация функции
is_integer(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимое целое число
is_integer(1)
true
Несоответствующий тип
is_integer("строка")
false
is_float
Проверяет, является ли value числом с плавающей точкой.
Спецификация функции
is_float(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимое число с плавающей точкой
is_float(0.577)
true
Несоответствующий тип
is_float("строка")
false
is_timestamp
Проверяет, является ли value меткой времени (timestamp).
Спецификация функции
is_timestamp(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимая метка времени (timestamp)
is_timestamp(t'2021-03-26T16:00:00Z')
true
Несоответствующий тип
is_timestamp("строка")
false
is_string
Проверяет, является ли value строкой.
Спецификация функции
is_string(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимая строка
is_string("строка")
true
Несоответствующий тип
is_string([1, 2, 3])
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
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_regex
Проверяет, является ли value регулярным выражением.
Спецификация функции
is_regex(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимое регулярное выражение
is_regex(r'pattern')
true
Несоответствующий тип
is_regex("строка")
false
is_array
Проверяет, является ли value массивом.
Спецификация функции
is_array(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимый массив
is_array([1, 2, 3])
true
Несоответствующий тип
is_array("строка")
false
is_object
Проверяет, является ли value объектом.
Спецификация функции
is_object(value: <любой тип>) :: <логическое значение>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимый объект
is_object({"foo": "bar"})
true
Несоответствующий тип
is_object("строка")
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
Функции валидации типов
bool
Возвращает value, если это логическое значение, иначе возвращает ошибку. Это позволяет проверяющему типу гарантировать, что возвращаемое значение является логическим и может быть использовано в любой функции, которая ожидает логическое значение.
Спецификация функции
bool(value: <любой тип>) :: <логическое значение>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любое |
Значение, которое необходимо проверить на принадлежность к логическим. |
да |
Ошибки
Функция bool возвращает ошибку, для которой требуется обработка, если value не является логическим значением.
Пример
Объявление типа Boolean
bool!(.value)
false
int
Возвращает value, если оно является целым числом, иначе возвращает ошибку. Это позволяет проверке типов гарантировать, что возвращаемое значение является целым числом и может быть использовано в любой функции, ожидающей такой тип данных.
Спецификация функции
int(value: <любой тип>) :: <целое число>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любой |
Значение, для которого необходимо убедиться, что оно является целым числом. |
да |
Ошибки
Функция int возвращает ошибку, для которой требуется обработка, если value не является целым числом.
Пример
Объявление переменной типа целое число
int!(.value)
42
float
Возвращает value, если это число с плавающей точкой, и ошибки в противном случае. Это позволяет средству проверки типов гарантировать, что возвращаемое значение является числом с плавающей точкой и может использоваться в любой функции, которая его ожидает.
Спецификация функции
float(value: <лобое>) :: <число с плавающей точкой>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любое |
Значение, которое необходимо проверить на тип float. |
да |
Ошибки
Функция float возвращает ошибку, для которой требуется обработка, если value не является числом с плавающей точкой.
Пример
Объявление типа float
float!(.value)
42
timestamp
Возвращает value, если это метка времени, иначе возвращает ошибку. Это позволяет проверке типов гарантировать, что возвращенное значение является меткой времени и может быть использовано в любой функции, которая ожидает метку времени.
Спецификация функции
timestamp(value: <любой тип>) :: <метка времени>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любое |
Значение, которое нужно обеспечить меткой времени. |
да |
Ошибки
Функция timestamp возвращает ошибку, для которой требуется обработка, если value не является меткой времени.
Пример
Объявление типа метки времени
ok, err = timestamp(.timestamp)
function call error for "timestamp" at (10:31): expected timestamp, got string
string
Возвращает value, если оно является строкой, иначе генерирует ошибку. Это гарантирует, что возвращаемое значение является строкой, которая может быть использована в любой функции, ожидающей строку.
Спецификация функции
string(value: <любой тип>) :: <строка>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любое |
Значение, для которого нужно гарантировать тип строки. |
да |
Ошибки
Функция string возвращает ошибку, для которой требуется обработка, если value не является строкой.
Пример
Объявление типа строки
string!(.message)
"{\"поле\": \"значение\"}"
array
Возвращает value, если оно является массивом, иначе возвращает ошибку. Это позволяет проверить тип и гарантирует, что возвращаемое значение — это массив, который может быть использован в любой функции, ожидающей массив.
Спецификация функции
array(value: <любой тип>) :: <массив>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любое |
Значение, проверяемое на предмет того, является ли оно массивом. |
да |
Ошибки
Функция array возвращает ошибку, для которой требуется обработка, если value не является массивом.
Пример
Объявление массива
array!(.value)
[ 1, 2, 3 ]
object
Возвращает value, если оно является объектом, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является объектом и может быть использовано в любой функции, ожидающей объект.
Спецификация функции
object(value: <любой тип>) :: <объект>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
любое |
Значение, которое требуется проверить |
да |
Ошибки
Функция object возвращает ошибку, для которой требуется обработка, если value не является объектом.
Пример
Определение типа объекта
object!(.value)
{
"field1": "value1",
"field2": "value2"
}
Функции представлений чисел
format_number
Форматирует value в строковое представление числа.
Спецификация функции
format_number(value: <целое число | число с плавающей точкой>, [scale: <целое число>, decimal_separator: <строка>, grouping_separator: <строка>]) :: <строка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Число для форматирования в строку. |
да |
|
|
целое число |
Количество десятичных знаков для отображения. |
нет |
|
|
строка |
Символ, используемый между целой и десятичной частями числа. |
|
нет |
|
строка |
Символ, используемый между каждой тысячной частью числа. |
|
нет |
Пример
Форматирование числа с тремя десятичными знаками
format_number(1234567.89, 3, decimal_separator: ".", grouping_separator: ",")
"1,234,567.890"
format_int
Форматирует целое число value в строковое представление с использованием заданного основания.
Спецификация функции
format_int(value: <целое число>, [base: <целое число>]) :: <строка>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число |
Число для форматирования. |
да |
|
|
целое число |
Основание для форматирования числа. Должно быть между 2 и 36 включительно. |
|
нет |
Ошибки
Функция format_int возвращает ошибку, для которой требуется обработка, если основание не находится между 2 и 36.
Примеры
Форматирование как шестнадцатеричное число
format_int!(42, 16)
"2a"
Форматирование как отрицательное шестнадцатеричное число
format_int!(-42, 16)
"-2a"
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
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
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
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
Функции преобразования чисел
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
round
Округляет value до указанной точности precision.
Спецификация функции
round(value: <целое число | число с плавающей точкой>, [precision: <целое число>]) :: <целое число | число с плавающей точкой>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Число для округления. |
да |
|
|
целое число |
Количество знаков после запятой для округления. |
|
нет |
Примеры
Округление числа без указания точности
round(4.345)
4
Округление числа с указанием точности
round(4.345, precision: 2)
4.35
mod
Вычисляет остаток от деления value на modulus.
Спецификация функции
mod(value: <целое число | число с плавающей точкой>, modulus: <целое число | число с плавающей точкой>) :: <целое число | число с плавающей точкой>, <ошибка>
| Аргумент | Тип | Описание | По умолчанию | Обязателен |
|---|---|---|---|---|
|
целое число число с плавающей точкой |
Значение, для которого применяется деление по модулю. |
да |
|
|
целое число число с плавающей точкой |
Значение модуля. |
да |
Ошибки
Функция mod может возвращать ошибки, для которых требуется обработка:
-
valueне является целым числом или числом с плавающей точкой. -
modulusне является целым числом или числом с плавающей точкой. -
modulusравен 0.
Пример
Вычисление остатка от деления двух целых чисел
remainder = mod(5, 2)
1
Функции форматирования меток времени
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
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
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"
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_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"
Была ли полезна эта страница?