【发布时间】:2016-08-11 16:58:32
【问题描述】:
是否可以直接修改嵌入在枚举中的值?
即使我使用了ref mut,error: cannot borrow immutable anonymous field `a.0` as mutable 也会失败。
enum Foo {
Bar(usize),
}
fn main() {
let a = Foo::Bar(10);
match a {
Foo::Bar(ref mut val) => *val = 33,
}
match a {
Foo::Bar(val) => println!("{}", val), // should print 33
}
}
这不是一个大问题,因为我可以做以下解决方法:
match a {
Foo::Bar(val) => a = Foo::Bar(33),
}
但这是正确的方法吗?
【问题讨论】:
标签: enums pattern-matching rust