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

Макрос assert_eq!

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

Синтаксис

assert_eq!(left, right); assert_eq!(left, right, "custom message"); assert_eq!(left, right, "custom message with {}", arg);

Пример

Давайте проверим, равны ли два числа:

fn main() { let a = 5; let b = 5; assert_eq!(a, b); println!("Values are equal"); }

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

"Values are equal"

Пример

Давайте проверим равенство двух строк:

fn main() { let s1 = "abcde"; let s2 = "abcde"; assert_eq!(s1, s2); println!("Strings are equal"); }

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

"Strings are equal"

Пример

Давайте посмотрим, что произойдет, если значения не равны. Этот код вызовет панику:

fn main() { let a = 5; let b = 10; assert_eq!(a, b); println!("This line will not be printed"); }

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

thread 'main' panicked at 'assertion failed: `(left == right)` left: `5`, right: `10`'

Пример

Давайте добавим собственное сообщение об ошибке:

fn main() { let a = 5; let b = 10; assert_eq!(a, b, "a and b must be equal"); }

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

thread 'main' panicked at 'assertion failed: `(left == right)` left: `5`, right: `10`: a and b must be equal'

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

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