Macro core::assert

1.0.0 · source ·
macro_rules! assert {
    ($cond:expr $(,)?) => { ... };
    ($cond:expr, $($arg:tt)+) => { ... };
}
Expand description

声明在运行时布尔表达式为 true

如果提供的表达式在运行时无法评估为 true,则将调用 panic! 宏。

Uses

断言总是在调试和发行版本中被检查,并且不能被禁用。 有关默认情况下未在发行版中启用的断言,请参见 debug_assert!

不安全的代码可能依赖 assert! 来强制执行运行时不变量,如果违反该规定,可能会导致不安全。

assert! 的其他用例包括在安全代码中测试和强制执行运行时不变量 (违反该规则不会导致不安全)。

自定义消息

此宏具有第二种形式,其中可以提供自定义 panic 消息 (带有或不带有用于格式化的参数)。 有关此格式的语法,请参见 std::fmt。 仅当断言失败时,才对用作 format 参数的表达式求值。

Examples

// 这些断言的 panic 消息是给定表达式的字符串化值。
assert!(true);

fn some_computation() -> bool { true } // 一个非常简单的函数

assert!(some_computation());

// 使用自定义消息进行断言
let x = true;
assert!(x, "x wasn't true!");

let a = 3; let b = 27;
assert!(a + b == 30, "a = {}, b = {}", a, b);
Run