Функции типов и форматирования
В данной статье при описании функций приняты следующие обозначения:
|
Функции проверки типов
is_null
Проверяет, является ли значение
пустым (null
) или нет.
Для более гибкой проверки используйте функцию is_nullish .
|
Спецификация функции
is_null(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить |
да |
Примеры
Значение null
is_null(null)
true
Несоответствующий тип
is_null("строка")
false
is_nullish
Определяет, является ли значение
"nullish", то есть не имеющим значимого содержания. "Nullish" считаются значения:
-
null
; -
"-"
; -
состоящие только из пробелов, то есть символов со свойством Unicode
White_Space
.
Спецификация функции
is_nullish(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить на бесполезность |
да |
Примеры
Обнаружение null
(пустая строка)
is_nullish("")
true
Обнаружение null
(строка с дефисом)
is_nullish("-")
true
Обнаружение null
(пустая строка)
is_nullish(" ")
true
is_empty
Проверяет, имеет ли объект, массив или строка нулевую длину.
Спецификация функции
is_empty(значение: <объект | массив | строка>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
объект массив строка |
Значение, которое необходимо проверить. |
да |
Примеры
Пустой массив
is_empty([])
true
Непустая строка
is_empty("строка")
false
Непустой объект
is_empty({"foo": "bar"})
false
is_boolean
Проверяет, является ли тип значения
логическим значением.
Спецификация функции
is_boolean(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, которое необходимо проверить |
да |
Примеры
Допустимое логическое значение
is_boolean(false)
true
Несоответствующий тип
is_boolean("строка")
false
is_integer
Проверяет, является ли тип значения
целым числом или нет.
Спецификация функции
is_integer(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимое целое число
is_integer(1)
true
Несоответствующий тип
is_integer("строка")
false
is_float
Проверяет, является ли тип значения
числом с плавающей точкой или нет.
Спецификация функции
is_float(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимое число с плавающей точкой
is_float(0.577)
true
Несоответствующий тип
is_float("строка")
false
is_timestamp
Проверяет, является ли тип значения
меткой времени (timestamp).
Спецификация функции
is_timestamp(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить. |
да |
Примеры
Допустимая метка времени (timestamp)
is_timestamp(t'2021-03-26T16:00:00Z')
true
Несоответствующий тип
is_timestamp("строка")
false
is_string
Проверяет, является ли тип значения
строкой.
Спецификация функции
is_string(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимая строка
is_string("строка")
true
Несоответствующий тип
is_string([1, 2, 3])
false
rv_is_utf8
Проверяет, является ли значение
строкой, закодированной в UTF-8.
Спецификация функции
rv_is_utf8(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимая строка
is_utf8("valid_string")
true
Недопустимая строка
is_utf8(b"\xff123123")
false
Не строка
is_utf8(123)
false
is_ipv4
Проверяет, является ли строка допустимым IPv4-адресом или нет.
IPv4-совместимые и IPv4-преобразованные IPv6-адреса не считаются допустимыми.
Спецификация функции
is_ipv4(значение: <строка>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
строка |
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
Проверяет, является ли строка допустимым IPv6-адресом или нет.
Спецификация функции
is_ipv6(значение: <строка>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
строка |
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
Проверяет, является ли строка допустимым документом JSON.
Спецификация функции
is_json(значение: <строка>, [variant: <строка>]) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
строка |
Значение, которое необходимо проверить |
да |
|
variant |
строка |
Вариант типа JSON для явной проверки:
|
нет |
Примеры
Допустимый JSON-объект
is_json("{}")
true
Недопустимое значение
is_json("{")
false
Точный вариант
is_json("{}", variant: "object")
true
Недопустимый точный вариант
is_json("{}", variant: "array")
false
is_regex
Проверяет, является ли тип значения
регулярным выражением или нет.
Спецификация функции
is_regex(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимое регулярное выражение
is_regex(r'pattern')
true
Несоответствующий тип
is_regex("строка")
false
is_array
Проверяет, является ли тип значения
массивом или нет.
Спецификация функции
is_array(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимый массив
is_array([1, 2, 3])
true
Несоответствующий тип
is_array("строка")
false
is_object
Проверяет, является ли тип значения
объектом.
Спецификация функции
is_object(значение: <любой тип>) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, которое необходимо проверить |
да |
Примеры
Допустимый объект
is_object({"foo": "bar"})
true
Несоответствующий тип
is_object("строка")
false
tag_types_externally
Добавляет информацию о типе ко всем вложенным скалярным значениям в предоставленном значении
.
Информация о типе добавляется в ключ, то есть после преобразования значение
имеет форму объекта с полями "тип": значение
.
Спецификация функции
tag_types_externally(значение: <любой тип>) :: <объект | массив объектов | пустое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, которое нужно пометить типами. |
да |
Примеры
Пометить тип в скалярном значении
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
Возвращает значение
, если это логическое значение, иначе возвращает ошибку. Это позволяет проверяющему типу гарантировать, что возвращаемое значение является логическим и может быть использовано в любой функции, которая ожидает логическое значение.
Спецификация функции
bool(значение: <любой тип>) :: <логическое значение> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, которое необходимо проверить на принадлежность к логическим. |
да |
Ошибки
Функция bool
может возвращать ошибки, для которых требуется обработка:
-
значение
не является логическим значением.
Примеры
Объявление типа Boolean
bool!(.value)
false
int
Возвращает значение
, если оно является целым числом, иначе возвращает ошибку. Это позволяет проверке типов гарантировать, что возвращаемое значение является целым числом и может быть использовано в любой функции, ожидающей такой тип данных.
Спецификация функции
int(значение: <любой тип>) :: <целое число> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любой |
Значение, для которого необходимо убедиться, что оно является целым числом. |
да |
Ошибки
Функция int
может возвращать ошибки, для которых требуется обработка:
-
значение
не является целым числом.
Примеры
Объявление переменной типа целое число
int!(.value)
42
float
Возвращает значение
, если это число с плавающей точкой, и ошибки в противном случае. Это позволяет средству проверки типов гарантировать, что возвращаемое значение является числом с плавающей точкой и может использоваться в любой функции, которая его ожидает.
Спецификация функции
float(значение: <лобое>) :: <число с плавающей точкой>, <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, которое необходимо проверить на тип float. |
да |
Ошибки
Функция float
может возвращать ошибки, для которых требуется обработка:
-
значение
не является числом с плавающей точкой.
Примеры
Объявление типа float
float!(.value)
42
timestamp
Возвращает value
, если это метка времени, иначе возвращает ошибку. Это позволяет проверке типов гарантировать, что возвращенное значение является меткой времени и может быть использовано в любой функции, которая ожидает метку времени.
Спецификация функции
timestamp(значение: <любой тип>) :: <метка времени> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, которое нужно обеспечить меткой времени. |
да |
Ошибки
Функция timestamp
может возвращать ошибки, для которых требуется обработка:
-
value
не является меткой времени.
Примеры
Объявление типа метки времени
ok, err = timestamp(.timestamp)
function call error for "timestamp" at (10:31): expected timestamp, got string
string
Возвращает значение
, если оно является строкой, иначе генерирует ошибку. Это гарантирует, что возвращаемое значение является строкой, которая может быть использована в любой функции, ожидающей строку.
Спецификация функции
string(значение: <любой тип>) :: <строка> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, для которого нужно гарантировать тип строки. |
да |
Ошибки
Функция string
может возвращать ошибки, для которых требуется обработка:
-
значение
не является строкой.
Примеры
Объявление типа строки
string!(.message)
{"поле": "значение"}
array
Возвращает значение
, если оно является массивом, иначе возвращает ошибку. Это позволяет проверить тип и гарантирует, что возвращаемое значение — это массив, который может быть использован в любой функции, ожидающей массив.
Спецификация функции
array(значение: <любой тип>) :: <массив> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, проверяемое на предмет того, является ли оно массивом. |
да |
Ошибки
Функция array
может возвращать ошибки, для которых требуется обработка:
-
значение
не является массивом.
Примеры
Объявление массива
array!(.value)
[ 1, 2, 3 ]
object
Возвращает значение
, если оно является объектом, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является объектом и может быть использовано в любой функции, ожидающей объект.
Спецификация функции
object(значение: <любой тип>) :: <объект>, <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
любое |
Значение, которое требуется проверить |
да |
Ошибки
Функция object
может возвращать ошибки, для которых требуется обработка:
-
значение
не является объектом.
Примеры
Определение типа объекта
object!(.value)
{ "field1": "value1", "field2": "value2" }
Функции представлений чисел
format_number
Форматирует значение
в строковое представление числа.
Спецификация функции
format_number(значение: <целое число | число с плавающей точкой>, [scale: <целое число>, decimal_separator: <строка>, grouping_separator: <строка>]) :: <строка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой |
Число для форматирования в строку. |
да |
|
scale |
целое число |
Количество десятичных знаков для отображения. |
нет |
|
decimal_separator |
строка |
Символ, используемый между целой и десятичной частями числа. |
|
нет |
grouping_separator |
строка |
Символ, используемый между каждой тысячной частью числа. |
|
нет |
Примеры
Форматирование числа (3 десятичных знака)
format_number(1234567.89, 3, decimal_separator: ".", grouping_separator: ",")
1,234,567.890
format_int
Форматирует целое число значение
в строковое представление с использованием заданного основания.
Спецификация функции
format_int(значение: <целое число>, [base: <целое число>]) :: <строка>, <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число |
Число для форматирования. |
да |
|
base |
целое число |
Основание для форматирования числа. Должно быть между 2 и 36 включительно. |
|
нет |
Ошибки
Функция format_int
может возвращать ошибки, для которых требуется обработка:
-
Основание не находится между 2 и 36.
Примеры
Форматирование как шестнадцатеричное число
format_int!(42, 16)
2a
Форматирование как отрицательное шестнадцатеричное число
format_int!(-42, 16)
-2a
parse_int
Разбирает строку значение
, представляющую число в указанной системе счисления, в целое число.
Спецификация функции
parse_int(значение: <строка>, [основание: <целое число>]) :: <строка> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
строка |
Строка для разбора. |
да |
|
основание |
целое число |
Система счисления числа. Должна быть в диапазоне от 2 до 36 включительно. Если не указано, для определения системы счисления будет использоваться префикс строки:
|
нет |
Ошибки
Функция parse_int
может возвращать ошибки, для которых требуется обработка:
-
Значение
основания
не находится в диапазоне от 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
Разбирает строку значение
, представляющую число в десятичной системе счисления, в число с плавающей запятой.
Спецификация функции
parse_float(значение: <строка>) :: <строка>, <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
строка |
Строка для разбора. |
да |
Ошибки
Функция parse_float
может возвращать ошибки, для которых требуется обработка:
-
Значение
не может быть разобрано как число. -
Значение
NaN
не поддерживается.
Примеры
Разбор отрицательного числа
parse_float!("-42")
-42.0
Разбор числа с плавающей запятой
parse_float!("42.38")
42.38
Разбор экспоненциальной записи
parse_float!("2.5e3")
2500.0
to_int
Приводит значение
к целому числу.
Спецификация функции
to_int(значение: <целое число | число с плавающей точкой | логическое значение | строка | метка времени>) :: <целое число> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой логическое значение строка метка времени |
Значение для преобразования в целое число. |
да |
Ошибки
Функция to_int
может возвращать ошибки, для которых требуется обработка:
-
value
является строкой, но текст не является целым числом -
value
не является строкой, числом или меткой времени
Примеры
Приведение к целому числу (строка)
to_int!("2")
2
Приведение к целому числу (метка времени)
to_int(t'2020-12-30T22:20:53.824727Z')
1609366853
to_float
Приводит value
к типу с плавающей точкой.
Спецификация функции
to_float(значение: <целое число | число с плавающей точкой | логическое значение | строка | метка времени>) :: <число с плавающей точкой> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой логическое значение строка метка времени |
Значение для преобразования в число с плавающей точкой. Должно быть преобразуемым в число с плавающей точкой, иначе будет сгенерирована ошибка. |
да |
Ошибки
Функция to_float
может возвращать ошибки, для которых требуется обработка:
-
value
не является поддерживаемым представлением числа с плавающей точкой.
Примеры
Приведение к числу с плавающей точкой
to_float!("3.145")
3.145
Приведение к числу с плавающей точкой (метка времени)
to_float(t'2020-12-30T22:20:53.824727Z')
1609366853.824727
Функции преобразования чисел
abs
Вычисляет абсолютное значение значения
.
Спецификация функции
abs(значение: <целое число | число с плавающей точкой>) :: <целое число | число с плавающей точкой>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой |
Число для вычисления абсолютного значения. |
да |
Примеры
Вычисление абсолютного значения целого числа
abs(-42)
42
Вычисление абсолютного значения числа с плавающей точкой
abs(-42.2)
42.2
ceil
Округляет значение
к большему до указанной точности precision
.
Спецификация функции
ceil(значение: <целое число | число с плавающей точкой>, [precision: <целое число>]) :: <целое число | число с плавающей точкой>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой |
Число, которое нужно округлить вверх. |
да |
|
precision |
целое число |
Количество десятичных знаков для округления. |
|
нет |
Примеры
Округление числа к большему (без указания точности)
ceil(4.345)
5
Округление числа к большему (с указанием точности)
ceil(4.345, precision: 2)
4.35
floor
Округляет значение
вниз до указанной precision
(точности).
Спецификация функции
floor(значение: <целое число | число с плавающей точкой>, [точность: <целое число>]) :: <целое число | число с плавающей точкой>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой |
Число, которое нужно округлить вниз. |
да |
|
precision |
целое число |
Количество десятичных знаков для округления. |
|
нет |
Примеры
Округление числа вниз (без указания точности)
floor(4.345)
4
Округление числа вниз (с указанием точности)
floor(4.345, precision: 2)
4.34
round
Округляет значение
до указанной precision
.
Спецификация функции
round(значение: <целое число | число с плавающей точкой>, [precision: <целое число>]) :: <целое число | число с плавающей точкой>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой |
Число для округления. |
да |
|
precision |
целое число |
Количество знаков после запятой для округления. |
|
нет |
Примеры
Округление числа (без указания точности)
round(4.345)
4
Округление числа (с указанием точности)
round(4.345, precision: 2)
4.35
mod
Вычисляет остаток от деления значения
на modulus
.
Спецификация функции
mod(значение: <целое число | число с плавающей точкой>, остаток: <целое число | число с плавающей точкой>) :: <строка>, <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой |
Значение, для которого применяется деление по модулю. |
да |
|
остаток |
целое число число с плавающей точкой |
Значение модуля. |
да |
Ошибки
Функция mod
может возвращать ошибки, для которых требуется обработка:
-
значение
не является целым числом или числом с плавающей точкой. -
` остаток ` не является целым числом или числом с плавающей точкой.
-
остаток
равен 0.
Примеры
Вычисление остатка от деления двух целых чисел
remainder = mod(5, 2)
1
Функции форматирования меток времени
from_unix_timestamp
Преобразует целое число значение
из формата времени Unix в формат времени VRL (timestamp
).
Преобразует из количества секунд с начала эпохи Unix по умолчанию, но также можно указать миллисекунды или наносекунды с помощью параметра unit
.
Спецификация функции
from_unix_timestamp(значение: <целое число>, [unit: <строка>]) :: <метка времени>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число |
Целое число Unix-времени для преобразования |
да |
|
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
Преобразует значение
метки времени в метку времени Unix.
По умолчанию возвращает количество секунд с момента начала эпохи Unix, но можно также указать миллисекунды или наносекунды через unit
.
Спецификация функции
to_unix_timestamp(значение: <метка времени>, [unit: <строка>]) :: <целое число>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
метка времени |
Метка времени для преобразования в Unix. |
да |
|
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
Форматирует значение
в строковое представление времени.
Спецификация функции
format_timestamp(значение: <метка времени>, формат: <строка>, [timezone: <строка>]) :: <строка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
метка времени |
Метка времени для форматирования в текст. |
да |
|
формат |
строка |
Строка формата, описанная в библиотеке Chrono. |
да |
|
timezone |
строка |
Часовой пояс, используемый при форматировании метки времени. Используйте идентификатор 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
Разбирает значение
в формате strptime.
Спецификация функции
parse_timestamp(значение: <строка>, format: <строка>) :: <метка времени> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
строка |
Текст времени. |
да |
|
format |
строка |
Формат strptime. |
да |
Ошибки
Функция parse_timestamp
может возвращать ошибки, для которых требуется обработка:
-
значение
не удалось разобрать с использованием предоставленногоformat
.
Примеры
Разбор времени
parse_timestamp!("10-Oct-2020 16:00+00:00", format: "%v %R %:z")
2020-10-10T16:00:00Z
Функции приведения строк и логических значений
to_bool
Приводит value
к логическому значению.
Спецификация функции
to_bool(значение: <логическое значение | целое число | число с плавающей точкой | пустое значение | строка>) :: <логическое значение> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
логическое значение целое число число с плавающей точкой пустое значение строка |
Значение для преобразования в логическое значение. |
да |
Ошибки
Функция to_bool
может возвращать ошибки, для которых требуется обработка:
-
value
не является поддерживаемым представлением логического значения.
Примеры
Приведение к логическому значению (строка)
to_bool!("yes")
true
Приведение к логическому значению (число с плавающей точкой)
to_bool(0.0)
false
Приведение к логическому значению (целое число)
to_bool(0)
false
Приведение к логическому значению (null)
to_bool(null)
false
Приведение к логическому значению (логическое значение)
to_bool(true)
true
to_regex
Приводит значение
к регулярному выражению.
Спецификация функции
to_regex(значение: <строка>) :: <регулярное выражение> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
строка |
Значение для преобразования в регулярное выражение |
да |
Примечания
У этой функции есть особое поведение, о котором стоит знать.
-
Компиляция регулярного выражения — это ресурсозатратная операция и может ограничивать пропускную способность Vector. Не используйте эту функцию, если вы абсолютно уверены, что нет другого способа.
Ошибки
Функция to_regex
может возвращать ошибки, для которых требуется обработка:
-
value
не является строкой.
Примеры
Приведение к регулярному выражению
to_regex("^foo$") ?? r''
^foo$
to_string
Приводит значение
к строке.
Спецификация функции
to_string(значение: < целое число | число с плавающей точкой | логическое значение | строка | метка времени>) :: <число с плавающей точкой | пустое значение>) :: <строка> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
значение |
целое число число с плавающей точкой логическое значение строка метка времени пустое значение |
Значение для преобразования в строку |
да |
Ошибки
Функция to_string
может возвращать ошибки, для которых требуется обработка:
-
value
не является целым числом, числом с плавающей точкой, логическим значением, строкой, меткой времени или пустым значением
Примеры
Приведение к строке (логическое значение)
to_string(true)
true
Приведение к строке (целое число)
to_string(52)
52
Приведение к строке (число с плавающей точкой)
to_string(52.2)
52.2