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

Макрос assert_ne!

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

Макрос assert_ne! чаще всего используется в тестах для проверки того, что результат работы функции отличается от некоторого значения.

Синтаксис

assert_ne!(left, right); assert_ne!(left, right, "сообщение"); assert_ne!(left, right, "сообщение {}", аргумент);

Пример

Давайте проверим, что число 5 не равно числу 10. Так как значения не равны, программа завершится успешно:

fn main() { assert_ne!(5, 10); println!("Values are not equal"); }

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

"Values are not equal"

Пример

Давайте проверим, что строка "abcde" не равна строке "12345":

fn main() { let a = "abcde"; let b = "12345"; assert_ne!(a, b); println!("Strings are not equal"); }

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

"Strings are not equal"

Пример

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

fn main() { let v1 = vec![1, 2, 3, 4, 5]; let v2 = vec![1, 2, 3, 4, 6]; assert_ne!(v1, v2); println!("Vectors are not equal"); }

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

"Vectors are not equal"

Пример

Давайте попробуем сравнить два одинаковых числа. Так как значения равны, макрос вызовет панику, и программа завершится с ошибкой:

fn main() { assert_ne!(5, 5, "Values should not be equal"); println!("This line will not be printed"); }

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

thread 'main' panicked at 'Values should not be equal: 5 == 5'

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

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