РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
817 of 1245 menu

Макрос assert!

Макрос assert! проверяет, истинно ли переданное ему условие. Если условие истинно, выполнение продолжается без каких-либо сообщений. Если условие ложно, макрос вызывает панику и завершает программу. Параметром макрос принимает логическое выражение, которое нужно проверить, а также, опционально, сообщение для вывода при панике.

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

Синтаксис

assert!(condition); assert!(condition, "message"); assert!(condition, "message {}", arg);

Пример

Давайте проверим, что условие 1 + 1 == 2 истинно:

fn main() { assert!(1 + 1 == 2); println!("ok"); }

Результат выполнения кода:

"ok"

Пример

Давайте проверим, что условие 1 + 1 == 3 ложно. Программа завершится с паникой:

fn main() { assert!(1 + 1 == 3); println!("ok"); }

Результат выполнения кода:

thread 'main' panicked at 'assertion failed: 1 + 1 == 3'

Пример

Давайте добавим собственное сообщение об ошибке при ложном условии:

fn main() { let res = 5; assert!(res > 10, "res must be greater than 10, got {}", res); }

Результат выполнения кода:

thread 'main' panicked at 'res must be greater than 10, got 5'

Смотрите также

  • макрос assert_eq!,
    который проверяет равенство двух значений
  • макрос assert_ne!,
    который проверяет неравенство двух значений
  • макрос panic!,
    который немедленно завершает программу с сообщением
  • макрос should_panic,
    который проверяет, что тест вызывает панику
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить