Макрос unimplemented!
Макрос unimplemented! помечает участок кода как
ещё не реализованный. При выполнении макрос паникует
с сообщением "not implemented". Параметром макрос
может принимать пользовательское сообщение, которое
будет выведено при панике.
Синтаксис
unimplemented!()
unimplemented!("message")
unimplemented!("message {}", arg)
Пример
Давайте вызовем макрос unimplemented! без параметров:
fn main()
{
unimplemented!();
}
Результат выполнения кода:
thread 'main' panicked at 'not implemented'
Пример
Давайте вызовем макрос unimplemented! с
пользовательским сообщением:
fn main()
{
unimplemented!("function is not ready yet");
}
Результат выполнения кода:
thread 'main' panicked at 'function is not ready yet'
Пример
Давайте используем макрос unimplemented! внутри
функции, чтобы обозначить ещё не готовую ветку логики:
fn divide(a: i32, b: i32) -> i32
{
if b == 0
{
unimplemented!("division by zero is not handled yet");
}
a / b
}
fn main()
{
let res = divide(10, 2);
println!("{}", res);
}
Результат выполнения кода:
5
Смотрите также
-
макрос
todo!,
который помечает код как запланированный к реализации -
макрос
panic!,
который вызывает панику с указанным сообщением -
макрос
unreachable!,
который помечает недостижимый участок кода -
метод
unwrap,
который извлекает значение из Option или Result