这是Rust的assert_eq!宏实现.为简洁起见,我只复制了第一个分支:
macro_rules! assert_eq {
($left:expr, $right:expr) => ({
match (&$left, &$right) {
(left_val, right_val) => {
if !(*left_val == *right_val) {
panic!(r#"assertion failed: `(left == right)`
left: `{:?}`,
right: `{:?}`"#, left_val, right_val)
}
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
这里的目的是match什么?为什么不检查不平等?
rust ×1