Функции типов и форматирования

В данном разделе при описании функций приняты следующие обозначения:

  • Типы значений, которые принимает аргумент, указаны в угловых скобках.

  • Перечень необязательных аргументов заключается в квадратные скобки. При вызове функции квадратные скобки вводить не нужно.

  • После :: в угловых скобках указаны типы значений, которые возвращает функция.

Функции проверки типов

is_null

Проверяет, является ли значение value пустым (null) или нет.

Для более гибкой проверки используйте функцию is_nullish.

Спецификация функции

is_null(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить

да

Примеры

Значение null

Исходный код
is_null(null)
Результат
true

Несоответствующий тип

Исходный код
is_null("строка")
Результат
false

is_nullish

Определяет, является ли value "nullish", то есть не имеющим значимого содержания. "Nullish" считаются значения:

  • null;

  • "-";

  • состоящие только из пробелов, то есть символов со свойством Unicode White_Space.

Спецификация функции

is_nullish(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить на отсутствие значимого содержания

да

Примеры

Обнаружение null (пустая строка)

Исходный код
is_nullish("")
Результат
true

Обнаружение null (строка с дефисом)

Исходный код
is_nullish("-")
Результат
true

Обнаружение null (пустая строка)

Исходный код
is_nullish("


")
Результат
true

is_empty

Проверяет, имеет ли объект, массив или строка нулевую длину.

Спецификация функции

is_empty(value: <объект | массив | строка>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

объект массив строка

Значение, которое необходимо проверить.

да

Примеры

Пустой массив

Исходный код
is_empty([])
Результат
true

Непустая строка

Исходный код
is_empty("строка")
Результат
false

Непустой объект

Исходный код
is_empty({"foo": "bar"})
Результат
false

is_boolean

Проверяет, является ли value логическим значением.

Спецификация функции

is_boolean(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любое

Значение, которое необходимо проверить

да

Примеры

Допустимое логическое значение

Исходный код
is_boolean(false)
Результат
true

Несоответствующий тип

Исходный код
is_boolean("строка")
Результат
false

is_integer

Проверяет, является ли value целым числом.

Спецификация функции

is_integer(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить.

да

Примеры

Допустимое целое число

Исходный код
is_integer(1)
Результат
true

Несоответствующий тип

Исходный код
is_integer("строка")
Результат
false

is_float

Проверяет, является ли value числом с плавающей точкой.

Спецификация функции

is_float(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить.

да

Примеры

Допустимое число с плавающей точкой

Исходный код
is_float(0.577)
Результат
true

Несоответствующий тип

Исходный код
is_float("строка")
Результат
false

is_timestamp

Проверяет, является ли value меткой времени.

Спецификация функции

is_timestamp(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить.

да

Примеры

Допустимая метка времени (timestamp)

Исходный код
is_timestamp(t'2021-03-26T16:00:00Z')
Результат
true

Несоответствующий тип

Исходный код
is_timestamp("строка")
Результат
false

is_string

Проверяет, является ли value строкой.

Спецификация функции

is_string(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить

да

Примеры

Допустимая строка

Исходный код
is_string("строка")
Результат
true

Несоответствующий тип

Исходный код
is_string([1, 2, 3])
Результат
false

rv_is_utf8

Проверяет, является ли value строкой, закодированной в UTF-8.

Спецификация функции

rv_is_utf8(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

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: <строка>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

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: <строка>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

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: <строка>])
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Значение, которое необходимо проверить

да

variant

строка

Вариант типа JSON для явной проверки:

  • object — объект JSON;

  • array — массив JSON;

  • string — строковое значение в формате JSON, заключенное в кавычки;

  • number — целое число или число с плавающей запятой;

  • bool — true или false;

  • null — значение null.

нет

Примеры

Допустимый JSON-объект

Исходный код
is_json("{}")
Результат
true

Недопустимое значение

Исходный код
is_json("{")
Результат
false

Точный вариант

Исходный код
is_json("{}", variant: "object")
Результат
true

Недопустимый точный вариант

Исходный код
is_json("{}", variant: "array")
Результат
false

is_regex

Проверяет, является ли value регулярным выражением.

Спецификация функции

is_regex(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить

да

Примеры

Допустимое регулярное выражение

Исходный код
is_regex(r'pattern')
Результат
true

Несоответствующий тип

Исходный код
is_regex("строка")
Результат
false

is_array

Проверяет, является ли value массивом.

Спецификация функции

is_array(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить

да

Примеры

Допустимый массив

Исходный код
is_array([1, 2, 3])
Результат
true

Несоответствующий тип

Исходный код
is_array("строка")
Результат
false

is_object

Проверяет, является ли value объектом.

Спецификация функции

is_object(value: <любой тип>)
:: <логическое значение>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, которое необходимо проверить

да

Примеры

Допустимый объект

Исходный код
is_object({"foo": "bar"})
Результат
true

Несоответствующий тип

Исходный код
is_object("строка")
Результат
false

tag_types_externally

Добавляет информацию о типе ко всем вложенным скалярным значениям в предоставленном значении value.

Информация о типе добавляется в ключ, то есть после преобразования value имеет форму объекта с полями "тип": значение.

Спецификация функции

tag_types_externally(value: <любой тип>)
:: <объект | массив объектов | пустое значение>
Аргумент Тип Описание По умолчанию Обязателен

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: <любой тип>)
:: <логическое значение>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

любое

Значение, которое необходимо проверить на принадлежность к логическим.

да

Ошибки

Функция bool возвращает ошибку, для которой требуется обработка, если value не является логическим значением.

Пример

Объявление типа Boolean

Исходный код
bool!(.value)
Результат
false

int

Возвращает value, если это целое число, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является целым числом и может использоваться в любой функции, которая его ожидает.

Спецификация функции

int(value: <любой тип>)
:: <целое число>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

любой

Значение, для которого необходимо убедиться, что оно является целым числом.

да

Ошибки

Функция int возвращает ошибку, для которой требуется обработка, если value не является целым числом.

Пример

Объявление переменной типа целое число

Исходный код
int!(.value)
Результат
42

float

Возвращает value, если это число с плавающей точкой, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является числом с плавающей точкой и может использоваться в любой функции, которая его ожидает.

Спецификация функции

float(value: <лобое>)
:: <число с плавающей точкой>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

любое

Значение, которое необходимо проверить на тип float.

да

Ошибки

Функция float возвращает ошибку, для которой требуется обработка, если value не является числом с плавающей точкой.

Пример

Объявление типа float

Исходный код
float!(.value)
Результат
42

timestamp

Возвращает value, если это метка времени, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является меткой времени и может использоваться в любой функции, которая его ожидает.

Спецификация функции

timestamp(value: <любой тип>)
:: <метка времени>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

любое

Значение, которое нужно обеспечить меткой времени.

да

Ошибки

Функция timestamp возвращает ошибку, для которой требуется обработка, если value не является меткой времени.

Пример

Объявление типа метки времени

Исходный код
ok, err = timestamp(.timestamp)
Результат
function call error for "timestamp" at (10:31): expected timestamp, got string

string

Возвращает value, если это строка, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является строкой и может использоваться в любой функции, которая его ожидает.

Спецификация функции

string(value: <любой тип>)
:: <строка>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

любое

Значение, для которого нужно гарантировать тип строки.

да

Ошибки

Функция string возвращает ошибку, для которой требуется обработка, если value не является строкой.

Пример

Объявление типа строки

Исходный код
string!(.message)
Результат
"{\"поле\": \"значение\"}"

array

Возвращает value, если это массив, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является массивом и может использоваться в любой функции, которая его ожидает.

Спецификация функции

array(value: <любой тип>)
:: <массив>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

любое

Значение, проверяемое на предмет того, является ли оно массивом.

да

Ошибки

Функция array возвращает ошибку, для которой требуется обработка, если value не является массивом.

Пример

Объявление массива

Исходный код
array!(.value)
Результат
[
  1,
  2,
  3
]

object

Возвращает value, если это объект, иначе возвращает ошибку. Это позволяет проверить, что возвращаемое значение является объектом и может использоваться в любой функции, которая его ожидает.

Спецификация функции

object(value: <любой тип>)
:: <объект>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

любое

Значение, которое требуется проверить

да

Ошибки

Функция object возвращает ошибку, для которой требуется обработка, если value не является объектом.

Пример

Определение типа объекта

Исходный код
object!(.value)
Результат
{
  "field1": "value1",
  "field2": "value2"
}

Функции представлений чисел

format_number

Форматирует value в строковое представление числа.

Спецификация функции

format_number(value: <целое число | число с плавающей точкой>, [scale: <целое число>, decimal_separator: <строка>, grouping_separator: <строка>])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

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: <целое число>])
:: <строка>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

целое число

Число для форматирования.

да

base

целое число

Основание для форматирования числа. Должно быть между 2 и 36 включительно.

10

нет

Ошибки

Функция format_int возвращает ошибку, для которой требуется обработка, если основание не находится между 2 и 36.

Примеры

Форматирование как шестнадцатеричное число

Исходный код
format_int!(42, 16)
Результат
"2a"

Форматирование как отрицательное шестнадцатеричное число

Исходный код
format_int!(-42, 16)
Результат
"-2a"

parse_int

Разбирает строку value, представляющую число в указанной системе счисления, в целое число.

Спецификация функции

parse_int(value: <строка>, [base: <целое число>])
:: <целое число>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Строка для разбора.

да

base

целое число

Система счисления числа. Должна быть в диапазоне от 2 до 36 включительно.

Если не указано, для определения системы счисления будет использоваться префикс строки:

  • 0b — двоичная;

  • 0, 0o — восьмеричная;

  • 0x — шестнадцатеричная;

  • в остальных случаях — десятеричная.

нет

Ошибки

Функция 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: <строка>)
:: <число с плавающей точкой>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

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

целое число число с плавающей точкой логическое значение строка метка времени

Значение для преобразования в целое число.

да

Характеристики функции

Поведение функции зависит от типа 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

целое число число с плавающей точкой логическое значение строка метка времени

Значение для преобразования в число с плавающей точкой. Должно быть преобразуемым в число с плавающей точкой, иначе будет сгенерирована ошибка.

да

Характеристики функции

Поведение функции зависит от типа 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: <целое число | число с плавающей точкой>)
:: <целое число | число с плавающей точкой>
Аргумент Тип Описание По умолчанию Обязателен

value

целое число число с плавающей точкой

Число для вычисления модуля.

да

Примеры

Вычисление модуля целого числа

Исходный код
abs(-42)
Результат
42

Вычисление модуля числа с плавающей точкой

Исходный код
abs(-42.2)
Результат
42.2

ceil

Округляет value к большему до указанной точности precision.

Спецификация функции

ceil(value: <целое число | число с плавающей точкой>, [precision: <целое число>])
:: <целое число | число с плавающей точкой>
Аргумент Тип Описание По умолчанию Обязателен

value

целое число число с плавающей точкой

Число, которое нужно округлить вверх.

да

precision

целое число

Количество десятичных знаков для округления.

0

нет

Примеры

Округление числа к большему без указания точности

Исходный код
ceil(4.345)
Результат
5

Округление числа к большему с указанием точности

Исходный код
ceil(4.345, precision: 2)
Результат
4.35

floor

Округляет value вниз до указанной precision (точности).

Спецификация функции

floor(value: <целое число | число с плавающей точкой>, [precision: <целое число>])
:: <целое число | число с плавающей точкой>
Аргумент Тип Описание По умолчанию Обязателен

value

целое число число с плавающей точкой

Число, которое нужно округлить вниз.

да

precision

целое число

Количество десятичных знаков для округления.

0

нет

Примеры

Округление числа вниз без указания точности

Исходный код
floor(4.345)
Результат
4

Округление числа вниз с указанием точности

Исходный код
floor(4.345, precision: 2)
Результат
4.34

round

Округляет value до указанной точности precision.

Спецификация функции

round(value: <целое число | число с плавающей точкой>, [precision: <целое число>])
:: <целое число | число с плавающей точкой>
Аргумент Тип Описание По умолчанию Обязателен

value

целое число число с плавающей точкой

Число для округления.

да

precision

целое число

Количество знаков после запятой для округления.

0

нет

Примеры

Округление числа без указания точности

Исходный код
round(4.345)
Результат
4

Округление числа с указанием точности

Исходный код
round(4.345, precision: 2)
Результат
4.35

mod

Вычисляет остаток от деления value на modulus.

Спецификация функции

mod(value: <целое число | число с плавающей точкой>, modulus: <целое число | число с плавающей точкой>)
:: <целое число | число с плавающей точкой>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

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: <строка>])
:: <метка времени>
Аргумент Тип Описание По умолчанию Обязателен

value

целое число

Целое число Unix-времени для преобразования

да

unit

строка

Единица измерения времени:

  • seconds;

  • milliseconds;

  • microseconds;

  • nanoseconds.

seconds

нет

Ошибки

Функция 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: <строка>])
:: <целое число>
Аргумент Тип Описание По умолчанию Обязателен

value

метка времени

Метка времени для преобразования в Unix.

да

unit

строка

Единица измерения времени:

  • seconds;

  • milliseconds;

  • microseconds;

  • nanoseconds.

seconds

нет

Ошибки

Функция 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: <строка>])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

value

метка времени

Метка времени для форматирования в текст.

да

format

строка

Строка формата, описанная в библиотеке 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

Разбирает value в формате strptime.

По умолчанию функция использует системный часовой пояс для разбора меток времени. Для анализа временных меток без указания часового пояса, таких как 16/10/2019 12:00:00, можно использовать аргумент `timezone`.

Спецификация функции

parse_timestamp(value: <строка>, format: <строка>, [timezone: <строка>])
:: <метка времени>, <ошибка>
Аргумент Тип Описание Обязателен

value

строка

Текст времени.

да

format

строка

Формат strptime.

да

timezone

строка

Часовой пояс в формате 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: <логическое значение | целое число | число с плавающей точкой | пустое значение | строка>)
:: <логическое значение>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

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: <строка>)
:: <регулярное выражение>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

строка

Значение для преобразования в регулярное выражение

да

Ошибки

Функция to_regex возвращает ошибку, для которой требуется обработка, если value не является строкой.

Пример

Приведение к регулярному выражению

Исходный код
to_regex("^foo$") ?? r''
Результат
^foo$

to_string

Приводит value к строке.

Спецификация функции

to_string(value: < целое число | число с плавающей точкой | логическое значение | строка | метка времени>)
:: <число с плавающей точкой | пустое значение>)
:: <строка>, <ошибка>
Аргумент Тип Описание По умолчанию Обязателен

value

целое число число с плавающей точкой логическое значение строка метка времени пустое значение

Значение для преобразования в строку

да

Ошибки

Функция to_string возвращает ошибку, для которой требуется обработка, если value не является целым числом, числом с плавающей точкой, логическим значением, строкой, меткой времени или пустым значением.

Примеры

Приведение логического значения к строке

Исходный код
to_string(true)
Результат
"true"

Приведение целого числа к строке

Исходный код
to_string(52)
Результат
"52"

Приведение числа с плавающей точкой к строке

Исходный код
to_string(52.2)
Результат
"52.2"

Была ли полезна эта страница?

Обратная связь