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

Макрос debug_assert_ne!

Макрос debug_assert_ne! проверяет, что два переданных значения не равны друг другу. Если значения оказываются равными, макрос вызывает панику с указанным сообщением. В отличие от assert_ne!, этот макрос активен только в отладочной сборке (при включённой опции debug_assertions). В релизной сборке проверка полностью отключается, что позволяет избежать накладных расходов. Параметрами макрос принимает два значения для сравнения и, опционально, сообщение об ошибке с аргументами форматирования.

Синтаксис

debug_assert_ne!(left, right); debug_assert_ne!(left, right, "message"); debug_assert_ne!(left, right, "message {}", arg);

Пример

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

fn main() { let a = 10; let b = 20; debug_assert_ne!(a, b, "a and b must not be equal"); println!("Check passed"); }

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

Check passed

Пример

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

fn main() { let a = "abcde"; let b = "abcde"; debug_assert_ne!(a, b, "a and b are equal"); println!("Check passed"); }

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

thread 'main' panicked at 'a and b are equal', src/main.rs:4:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Пример

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

fn main() { let v = vec![1, 2, 3, 4, 5]; debug_assert_ne!(v[0], v[1], "elements must differ"); println!("Elements are different"); }

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

Elements are different

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

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