本文简要介绍rust语言中 Macro core::assert_matches::debug_assert_matches
的用法。
用法
pub macro debug_assert_matches($($arg : tt) *) {
...
}
断言一个表达式匹配任何给定的模式。
就像在match
表达式中一样,该模式可以选择性地后跟if
和一个可以访问由该模式绑定的名称的保护表达式。
Panics时,此宏将打印表达式的值及其调试表示。
与 assert_matches!
不同,默认情况下 debug_assert_matches!
语句仅在非优化构建中启用。除非将 -C debug-assertions
传递给编译器,否则优化的构建将不会执行 debug_assert_matches!
语句。这使得debug_assert_matches!
对于那些成本太高而无法在发布版本中出现但在开发过程中可能会有所帮助的检查很有用。扩展debug_assert_matches!
的结果总是类型检查。
例子
#![feature(assert_matches)]
use std::assert_matches::debug_assert_matches;
let a = 1u32.checked_add(2);
let b = 1u32.checked_sub(2);
debug_assert_matches!(a, Some(_));
debug_assert_matches!(b, None);
let c = Ok("abc".to_string());
debug_assert_matches!(c, Ok(x) | Err(x) if x.len() < 100);
相关用法
- Rust debug_assert_eq用法及代码示例
- Rust debug_assert_ne用法及代码示例
- Rust debug_assert用法及代码示例
- Rust default用法及代码示例
- Rust decode_utf16用法及代码示例
- Rust drop_in_place用法及代码示例
- Rust drop用法及代码示例
- Rust discriminant用法及代码示例
- Rust dbg用法及代码示例
- Rust UdpSocket.set_multicast_loop_v6用法及代码示例
- Rust i64.overflowing_add_unsigned用法及代码示例
- Rust Box.downcast用法及代码示例
- Rust BTreeMap.last_key_value用法及代码示例
- Rust str.make_ascii_uppercase用法及代码示例
- Rust u128.checked_pow用法及代码示例
- Rust usize.wrapping_mul用法及代码示例
- Rust AtomicU8.fetch_sub用法及代码示例
- Rust PanicInfo.payload用法及代码示例
- Rust MaybeUninit.assume_init_mut用法及代码示例
- Rust String.try_reserve用法及代码示例
- Rust Mutex.new用法及代码示例
- Rust f32.exp用法及代码示例
- Rust Result.unwrap_or_else用法及代码示例
- Rust slice.sort_unstable_by_key用法及代码示例
- Rust Formatter.precision用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Macro core::assert_matches::debug_assert_matches。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。