1
列挙型の中に埋め込まれた値を直接変更することはできますか?照合中にenum内の値を変更する
ref mut
を使用しましたが、error: cannot borrow immutable anonymous field `a.0` as mutable
で以下が失敗します。
match a {
Foo::Bar(val) => a = Foo::Bar(33),
}
しかし、これは正しい方法である:私は回避策として、次の操作を行うことができるので、大きな問題ではない
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
}
}
?
ありがとうございます! – Getkey