我有一个像:
pub enum Tag<'a> { Container { c: Vec> }, // ... }
当我尝试匹配时:
impl<'a> Display for Tag<'a> { fn fmt(&self, f: &mut Formatter) -> fmt::Result { match *self { Tag::Container { ref c } => write!(f, "{}", "container"), // ... } } }
我明白了:
warning: unused variable: `c`, #[warn(unused_variables)] on by default
|
65 | Tag::Container{ref c} => write!(f, "{}", "container"),
在其他一些地方.
我试图使用_
,只是为了删除,ref c
但这一切都会导致错误.
你可以使用..
:
match *self { Tag::Container { .. } => write!(f, "{}", "container"),
本书将对此进行介绍,特别是在Ignoring bindings中,它用于忽略枚举变量中包含的值:
enum OptionalTuple { Value(i32, i32, i32), Missing, } let x = OptionalTuple::Value(5, -2, 3); match x { OptionalTuple::Value(..) => println!("Got a tuple!"), OptionalTuple::Missing => println!("No such luck."), }