My code:
fn main() {
let mut messages = vec![];
let msg = Message::Write{message: "msg".to_string()};
match msg {
Message::Write{message} => println!("{}", message),
};
messages.push(msg);
}
enum Message {
Write{message: String},
}
错误:
error: use of partially moved value: `msg` [--explain E0382]
--> <anon>:9:19
6 |> Message::Write{message} => println!("{}", message),
|> ------- value moved here
...
9 |> messages.push(msg);
|> ^^^ value used here after move
note: move occurs because `msg.message` has type `std::string::String`, which does not implement the `Copy` trait
error: aborting due to previous error
看起来像所有权message
场的变化match
堵塞。我只是希望能够在将枚举添加到之前输出它的值Vec
。我该如何编译这个?
绑定到message
字段按引用而不是按值。
match msg {
Message::Write{ref message} => println!("{}", message),
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)