我有這個簡單的代碼:爲什麼在PartialEq/Eq正常工作時匹配不起作用?
#[derive(Copy, Clone, Default, PartialEq, PartialOrd, Eq, Ord, Hash)]
struct NodeIndex(u32);
fn main() {
let i = NodeIndex(5323);
let from = NodeIndex(21030);
let to = NodeIndex(21031);
println!("from == i => {}, to == i => {}", from == i, to == i);
match i {
from => println!("1"),
to => println!("2"),
_ => println!("other"),
}
}
它打印:
from == i => false, to == i => false
1
所以i != from
,i != to
,但match
通話from => println!("1"),
, 是怎麼回事?
我認爲你可以使用匹配只能用文字。 – Boiethios
[This code](https://play.rust-lang.org/?gist=33255e4b59d8c42cf6bb73a42da829bb&version=stable&backtrace=0)可以做你想做的事情。 – red75prime