当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust assert用法及代码示例


本文简要介绍rust语言中 Macro core::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-lang.org大神的英文原创作品 Macro core::assert。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。