本文簡要介紹rust語言中 Macro std::assert
的用法。
用法
macro_rules! assert {
($cond : expr $(,) ?) => { ... };
($cond : expr, $($arg : tt) +) => { ... };
}
在運行時斷言布爾表達式是true
。
如果在運行時無法將提供的表達式計算為 true
,這將調用 panic!
宏。
用途
斷言總是在調試和發布版本中檢查,並且不能被禁用。請參閱 debug_assert!
,了解默認情況下在發布版本中未啟用的斷言。
不安全的代碼可能依賴 assert!
來強製執行運行時不變量,如果違反這些不變量可能會導致不安全。
assert!
的其他 use-cases 包括在安全代碼中測試和強製執行運行時不變量(其違規不會導致不安全)。
自定義消息
這個宏有第二種形式,可以提供自定義緊急消息,帶或不帶參數用於格式化。有關此表單的語法,請參見 std::fmt
。僅當斷言失敗時才會評估用作格式參數的表達式。
例子
// the panic message for these assertions is the stringified value of the
// expression given.
assert!(true);
fn some_computation() -> bool { true } // a very simple function
assert!(some_computation());
// assert with a custom message
let x = true;
assert!(x, "x wasn't true!");
let a = 3; let b = 27;
assert!(a + b == 30, "a = {}, b = {}", a, b);
相關用法
- Rust assert_ne用法及代碼示例
- Rust assert_matches用法及代碼示例
- Rust assert_eq用法及代碼示例
- Rust array.map用法及代碼示例
- Rust addr_of_mut用法及代碼示例
- Rust alloc_zeroed用法及代碼示例
- Rust array.split_array_ref用法及代碼示例
- Rust array用法及代碼示例
- Rust array.zip用法及代碼示例
- Rust align_of用法及代碼示例
- Rust always_abort用法及代碼示例
- Rust array.split_array_mut用法及代碼示例
- Rust available_parallelism用法及代碼示例
- Rust addr_of用法及代碼示例
- Rust abort用法及代碼示例
- Rust align_of_val用法及代碼示例
- Rust array.each_mut用法及代碼示例
- Rust array.each_ref用法及代碼示例
- Rust args用法及代碼示例
- Rust alloc用法及代碼示例
- Rust args_os用法及代碼示例
- Rust align_of_val_raw用法及代碼示例
- Rust UdpSocket.set_multicast_loop_v6用法及代碼示例
- Rust i64.overflowing_add_unsigned用法及代碼示例
- Rust Box.downcast用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Macro std::assert。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。