如何修复"警告:未使用的变量"对于在Rust中命名为params的枚举?

时间:2017-01-15 21:36:55

标签: enums rust warnings

我有一个类似的枚举:

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,但这一切都会导致错误。

1 个答案:

答案 0 :(得分:7)

您可以使用..

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."),
}