Функции отладки
В данном разделе при описании функций приняты следующие обозначения:
|
assert
Проверяет условие condition
, которое должно возвращать логическое значение. Если условие возвращает false
, программа завершается с сообщением message
.
Функцию assert следует использовать автономно и только тогда, когда вы хотите прервать программу. Избегайте ее использования в логических выражениях и других ситуациях, когда программа должна продолжать выполнение, даже если утверждение в условии является ложным.
|
Спецификация функции
assert(condition: <логическое значение | сравнение | логическое выражение>, [message: <строка>]) :: <пустое значение> , <ошибка>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
|
логическое значение сравнение логическое выражение |
Условие для проверки, должно возвращать логическое значение. |
да |
|
|
строка |
Пользовательское сообщение об ошибке. |
нет |
Ошибки
Функция assert
возвращает ошибку, для которой требуется обработка, если condition
возвращает значение false
Примеры
Истинное утверждение
ok, err = assert("foo" == "foo", message: "\"foo\" must be \"foo\"!")
true
Ложное утверждение
assert!("foo" == "bar", message: "\"foo\" must be \"foo\"!")
assert_eq
Проверяет, что два выражения, left
и right
, имеют одинаковое значение. Если они не равны, программа прерывается с сообщением message
.
Функцию assert_eq следует использовать автономно и только тогда, когда вы хотите прервать программу. Избегайте ее использования в логических выражениях и других ситуациях, когда программа должна продолжать выполнение, даже если утверждение в условии является ложным.
|
Спецификация функции
assert_eq(left: <любой тип>, right: <любой тип>, [message: <строка>]) :: <логическое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
|
любое |
Значение для проверки на равенство с |
да |
|
|
любое |
Значение для проверки на равенство с |
да |
|
|
строка |
Пользовательское сообщение об ошибке. |
нет |
Примеры
Верное утверждение
assert_eq!(1, 1)
true
Ложное утверждение
assert_eq!(127, [1, 2, 3])
Ложное утверждение с пользовательским сообщением
assert_eq!(1, 0, message: "Unequal integers")
log
Выводит value
в стандартный вывод Vector с указанным level
.
Спецификация функции
log(value: <любой тип>, [level: <строка>, rate_limit_secs: <целое число>]) :: <пустое значение>
Аргумент | Тип | Описание | По умолчанию | Обязателен |
---|---|---|---|---|
|
любое |
Значение для вывода в лог. |
да |
|
|
строка |
Уровень логирования. |
|
нет |
|
целое число |
Определяет, что сообщение будет выводиться не чаще указанного количества секунд. Чтобы отключить ограничение частоты, установите значение |
|
нет |
Примеры
Вывод сообщения в лог
log("Hello, World!", level: "info", rate_limit_secs: 60)
null
Вывод ошибки в лог
ts, err = to_int(.field)
if err != null {
log(err, level: "error")
}
null