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

Макрос todo!

Макрос todo! используется в качестве заглушки для кода, который ещё не написан. При вызове он немедленно вызывает панику с сообщением "not yet implemented". Макрос может принимать необязательный аргумент - строку с пояснением, которая будет добавлена к сообщению паники.

Макрос todo! удобно использовать во время разработки, когда нужно обозначить место, которое будет реализовано позже. В отличие от unimplemented!, он семантически указывает именно на запланированную, но ещё не выполненную работу.

Синтаксис

todo!() todo!("сообщение")

Пример

Давайте вызовем макрос todo! без аргументов и посмотрим, что произойдёт:

fn main() { println!("start"); todo!(); }

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

start thread 'main' panicked at 'not yet implemented'

Пример

Давайте вызовем макрос todo! с текстовым сообщением:

fn main() { todo!("implement calculation"); }

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

thread 'main' panicked at 'not yet implemented: implement calculation'

Пример

Давайте используем todo! в функции, которая ещё не реализована, но уже вызывается из основной программы:

fn calculate(a: i32, b: i32) -> i32 { todo!("calculate sum of {} and {}", a, b); } fn main() { let res = calculate(1, 2); println!("{}", res); }

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

thread 'main' panicked at 'not yet implemented: calculate sum of 1 and 2'

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

  • макрос unimplemented!,
    который помечает ещё не реализованную функциональность
  • макрос panic!,
    который немедленно вызывает панику с сообщением
  • макрос unreachable!,
    который помечает недостижимый код
  • макрос debug_assert!,
    который проверяет условие только в debug-сборке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить