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

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

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

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

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

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

is_null

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

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

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

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

значение

любой

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

да

Примеры

Значение null

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

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

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

is_nullish

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

  • null;

  • "-";

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

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

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

значение

любой

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

да

Примеры

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

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

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

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

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

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


")
Example 10. Результат
true

is_empty

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

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

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

значение

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

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

да

Примеры

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

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

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

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

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

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

is_boolean

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

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

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

значение

любое

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

да

Примеры

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

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

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

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

is_integer

Проверяет, является ли тип значения целым числом или нет.

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

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

значение

любой

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

да

Примеры

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

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

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

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

is_float

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

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

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

значение

любой

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

да

Примеры

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

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

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

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

is_timestamp

Проверяет, является ли тип значения меткой времени (timestamp).

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

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

значение

любой

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

да

Примеры

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

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

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

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

is_string

Проверяет, является ли тип значения строкой.

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

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

значение

любой

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

да

Примеры

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

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

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

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

rv_is_utf8

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

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

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

значение

любой

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

да

Примеры

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

Example 37. Исходный код
is_utf8("valid_string")
Example 38. Результат
true

Недопустимая строка

Example 39. Исходный код
is_utf8(b"\xff123123")
Example 40. Результат
false

Не строка

Example 41. Исходный код
is_utf8(123)
Example 42. Результат
false

is_ipv4

Проверяет, является ли строка допустимым IPv4-адресом или нет.

IPv4-совместимые и IPv4-преобразованные IPv6-адреса не считаются допустимыми.

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

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

значение

строка

IP-адрес, который необходимо проверить.

да

Примеры

Допустимый IPv4-адрес

Example 43. Исходный код
is_ipv4("10.0.102.37")
Example 44. Результат
true

Допустимый IPv6-адрес

Example 45. Исходный код
is_ipv4("2001:0db8:85a3:0000:0000:8a2e:0370:7334")
Example 46. Результат
false

Произвольная строка

Example 47. Исходный код
is_ipv4("foobar")
Example 48. Результат
false

is_ipv6

Проверяет, является ли строка допустимым IPv6-адресом или нет.

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

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

значение

строка

IP-адрес, который необходимо проверить.

да

Примеры

Допустимый IPv6-адрес

Example 49. Исходный код
is_ipv6("2001:0db8:85a3:0000:0000:8a2e:0370:7334")
Example 50. Результат
true

Допустимый IPv4-адрес

Example 51. Исходный код
is_ipv6("10.0.102.37")
Example 52. Результат
false

Произвольная строка

Example 53. Исходный код
is_ipv6("foobar")
Example 54. Результат
false

is_json

Проверяет, является ли строка допустимым документом JSON.

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

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

значение

строка

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

да

variant

строка

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

  • object — объект JSON;

  • array" — массив JSON;

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

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

  • bool — true или false;

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

нет

Примеры

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

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

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

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

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

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

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

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

is_regex

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

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

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

значение

любой

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

да

Примеры

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

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

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

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

is_array

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

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

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

значение

любой

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

да

Примеры

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

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

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

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

is_object

Проверяет, является ли тип значения объектом.

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

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

значение

любой

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

да

Примеры

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

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

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

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

tag_types_externally

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

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

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

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

значение

любое

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

да

Примеры

Пометить тип в скалярном значении

Example 75. Исходный код
tag_types_externally(123)
Example 76. Результат
{
"integer": 123
}

Пометить типы в объекте

Example 77. Исходный код
tag_types_externally({
"message": "Hello world",
"request": {
"duration_ms": 67.9
}
})
Example 78. Результат
{
"message": {
"string": "Hello world"
},
"request": {
"duration_ms": {
"float": 67.9
}
}
}

Пометить типы в массиве

Example 79. Исходный код
tag_types_externally(["foo", "bar"])
Example 80. Результат
[
{
"string": "foo"
},
{
"string": "bar"
}
]

Типы в пустом значении

Example 81. Исходный код
tag_types_externally(null)
Example 82. Результат
null

Функции валидации типов

bool

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

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

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

значение

любое

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

да

Ошибки

Функция bool может возвращать ошибки, для которых требуется обработка:

  • значение не является логическим значением.

Примеры

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

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

int

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

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

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

значение

любой

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

да

Ошибки

Функция int может возвращать ошибки, для которых требуется обработка:

  • значение не является целым числом.

Примеры

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

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

float

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

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

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

значение

любое

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

да

Ошибки

Функция float может возвращать ошибки, для которых требуется обработка:

  • значение не является числом с плавающей точкой.

Примеры

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

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

timestamp

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

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

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

значение

любое

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

да

Ошибки

Функция timestamp может возвращать ошибки, для которых требуется обработка:

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

Примеры

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

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

string

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

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

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

значение

любое

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

да

Ошибки

Функция string может возвращать ошибки, для которых требуется обработка:

  • значение не является строкой.

Примеры

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

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

array

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

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

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

значение

любое

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

да

Ошибки

Функция array может возвращать ошибки, для которых требуется обработка:

  • значение не является массивом.

Примеры

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

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

object

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

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

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

значение

любое

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

да

Ошибки

Функция object может возвращать ошибки, для которых требуется обработка:

  • значение не является объектом.

Примеры

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

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

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

format_number

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

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

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

значение

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

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

да

scale

целое число

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

нет

decimal_separator

строка

Символ, используемый между целой и десятичной частями числа.

.

нет

grouping_separator

строка

Символ, используемый между каждой тысячной частью числа.

,

нет

Примеры

Форматирование числа (3 десятичных знака)

Example 97. Исходный код
format_number(1234567.89, 3, decimal_separator: ".", grouping_separator: ",")
Example 98. Результат
1,234,567.890

format_int

Форматирует целое число значение в строковое представление с использованием заданного основания.

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

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

значение

целое число

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

да

base

целое число

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

10

нет

Ошибки

Функция format_int может возвращать ошибки, для которых требуется обработка:

  • Основание не находится между 2 и 36.

Примеры

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

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

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

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

parse_int

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

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

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

значение

строка

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

да

основание

целое число

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

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

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

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

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

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

нет

Ошибки

Функция parse_int может возвращать ошибки, для которых требуется обработка:

  • Значение основания не находится в диапазоне от 2 до 36;

  • Число не может быть разобрано в указанной системе счисления.

Примеры

Разбор десятичного числа

Example 103. Исходный код
parse_int!("-42")
Example 104. Результат
-42

Разбор двоичного числа

Example 105. Исходный код
parse_int!("0b1001")
Example 106. Результат
9

Разбор восьмеричного числа

Example 107. Исходный код
parse_int!("0o42")
Example 108. Результат
34

Разбор шестнадцатеричного числа

Example 109. Исходный код
parse_int!("0x2a")
Example 110. Результат
42

Разбор числа с явно указанной системой счисления

Example 111. Исходный код
parse_int!("2a", 17)
Example 112. Результат
44

parse_float

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

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

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

значение

строка

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

да

Ошибки

Функция parse_float может возвращать ошибки, для которых требуется обработка:

  • Значение не может быть разобрано как число.

  • Значение NaN не поддерживается.

Примеры

Разбор отрицательного числа

Example 113. Исходный код
parse_float!("-42")
Example 114. Результат
-42.0

Разбор числа с плавающей запятой

Example 115. Исходный код
parse_float!("42.38")
Example 116. Результат
42.38

Разбор экспоненциальной записи

Example 117. Исходный код
parse_float!("2.5e3")
Example 118. Результат
2500.0

to_int

Приводит значение к целому числу.

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

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

значение

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

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

да

Ошибки

Функция to_int может возвращать ошибки, для которых требуется обработка:

  • value является строкой, но текст не является целым числом

  • value не является строкой, числом или меткой времени

Примеры

Приведение к целому числу (строка)

Example 119. Исходный код
to_int!("2")
Example 120. Результат
2

Приведение к целому числу (метка времени)

Example 121. Исходный код
to_int(t'2020-12-30T22:20:53.824727Z')
Example 122. Результат
1609366853

to_float

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

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

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

значение

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

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

да

Ошибки

Функция to_float может возвращать ошибки, для которых требуется обработка:

  • value не является поддерживаемым представлением числа с плавающей точкой.

Примеры

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

Example 123. Исходный код
to_float!("3.145")
Example 124. Результат
3.145

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

Example 125. Исходный код
to_float(t'2020-12-30T22:20:53.824727Z')
Example 126. Результат
1609366853.824727

Функции преобразования чисел

abs

Вычисляет абсолютное значение значения.

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

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

значение

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

Число для вычисления абсолютного значения.

да

Примеры

Вычисление абсолютного значения целого числа

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

Вычисление абсолютного значения числа с плавающей точкой

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

ceil

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

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

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

значение

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

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

да

precision

целое число

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

0

нет

Примеры

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

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

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

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

floor

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

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

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

значение

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

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

да

precision

целое число

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

0

нет

Примеры

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

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

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

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

round

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

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

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

значение

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

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

да

precision

целое число

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

0

нет

Примеры

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

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

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

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

mod

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

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

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

значение

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

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

да

остаток

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

Значение модуля.

да

Ошибки

Функция mod может возвращать ошибки, для которых требуется обработка:

  • значение не является целым числом или числом с плавающей точкой.

  • ` остаток ` не является целым числом или числом с плавающей точкой.

  • остаток равен 0.

Примеры

Вычисление остатка от деления двух целых чисел

Example 143. Исходный код
remainder = mod(5, 2)
Example 144. Результат
1

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

from_unix_timestamp

Преобразует целое число значение из формата времени Unix в формат времени VRL (timestamp).

Преобразует из количества секунд с начала эпохи Unix по умолчанию, но также можно указать миллисекунды или наносекунды с помощью параметра unit.

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

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

значение

целое число

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

да

unit

строка

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

seconds

нет

Примеры

Преобразование из формата Unix-времени (секунды)

Example 145. Исходный код
from_unix_timestamp!(5)
Example 146. Результат
1970-01-01T00:00:05Z

Преобразование из формата Unix-времени (миллисекунды)

Example 147. Исходный код
from_unix_timestamp!(5000, unit: "milliseconds")
Example 148. Результат
1970-01-01T00:00:05Z

Преобразование из формата Unix-времени (наносекунды)

Example 149. Исходный код
from_unix_timestamp!(5000, unit: "nanoseconds")
Example 150. Результат
1970-01-01T00:00:00.000005Z

to_unix_timestamp

Преобразует значение метки времени в метку времени Unix.

По умолчанию возвращает количество секунд с момента начала эпохи Unix, но можно также указать миллисекунды или наносекунды через unit.

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

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

значение

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

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

да

unit

строка

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

seconds

нет

Примеры

Преобразование в метку времени Unix (секунды)

Example 151. Исходный код
to_unix_timestamp(t'2021-01-01T00:00:00+00:00')
Example 152. Результат
1609459200

Преобразование в метку времени Unix (миллисекунды)

Example 153. Исходный код
to_unix_timestamp(t'2021-01-01T00:00:00Z', unit: "milliseconds")
Example 154. Результат
1609459200000

Преобразование в метку времени Unix (наносекунды)

Example 155. Исходный код
to_unix_timestamp(t'2021-01-01T00:00:00Z', unit: "nanoseconds")
Example 156. Результат
1609459200000000000

format_timestamp

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

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

format_timestamp(значение: <метка времени>, формат: <строка>, [timezone: <строка>])
:: <строка>
Аргумент Тип Описание По умолчанию Обязателен

значение

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

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

да

формат

строка

Строка формата, описанная в библиотеке Chrono.

да

timezone

строка

Часовой пояс, используемый при форматировании метки времени. Используйте идентификатор TZ или 'local'.

нет

Примеры

Форматирование метки времени (ISO8601/RFC 3339)

Example 157. Исходный код
format_timestamp!(t'2020-10-21T16:00:00Z', format: "%+")
Example 158. Результат
2020-10-21T16:00:00+00:00

Форматирование метки времени (пользовательский формат)

Example 159. Исходный код
format_timestamp!(t'2020-10-21T16:00:00Z', format: "%v %R")
Example 160. Результат
21-Oct-2020 16:00

parse_timestamp

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

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

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

значение

строка

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

да

format

строка

Формат strptime.

да

Ошибки

Функция parse_timestamp может возвращать ошибки, для которых требуется обработка:

  • значение не удалось разобрать с использованием предоставленного format.

Примеры

Разбор времени

Example 161. Исходный код
parse_timestamp!("10-Oct-2020 16:00+00:00", format: "%v %R %:z")
Example 162. Результат
2020-10-10T16:00:00Z

Функции приведения строк и логических значений

to_bool

Приводит value к логическому значению.

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

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

значение

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

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

да

Ошибки

Функция to_bool может возвращать ошибки, для которых требуется обработка:

  • value не является поддерживаемым представлением логического значения.

Примеры

Приведение к логическому значению (строка)

Example 163. Исходный код
to_bool!("yes")
Example 164. Результат
true

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

Example 165. Исходный код
to_bool(0.0)
Example 166. Результат
false

Приведение к логическому значению (целое число)

Example 167. Исходный код
to_bool(0)
Example 168. Результат
false

Приведение к логическому значению (null)

Example 169. Исходный код
to_bool(null)
Example 170. Результат
false

Приведение к логическому значению (логическое значение)

Example 171. Исходный код
to_bool(true)
Example 172. Результат
true

to_regex

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

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

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

значение

строка

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

да

Примечания

У этой функции есть особое поведение, о котором стоит знать.

  • Компиляция регулярного выражения — это ресурсозатратная операция и может ограничивать пропускную способность Vector. Не используйте эту функцию, если вы абсолютно уверены, что нет другого способа.

Ошибки

Функция to_regex может возвращать ошибки, для которых требуется обработка:

  • value не является строкой.

Примеры

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

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

to_string

Приводит значение к строке.

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

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

значение

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

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

да

Ошибки

Функция to_string может возвращать ошибки, для которых требуется обработка:

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

Примеры

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

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

Приведение к строке (целое число)

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

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

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