2017-01-15 4 views
3

私は、列挙型のように持っている:私は一致しようとすると、Rustに名前付きparamsを持つenumの "warning:unused variable"を修正するにはどうすればよいですか?

pub enum Tag<'a> { 
    Container { c: Vec<Tag<'a>> }, 
    // ... 
} 

を:

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を削除しましたが、すべてエラーの原因となります。

答えて

6

あなたは..を使用することができます。

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."), 
} 
関連する問題