赋值
放弃?
fn main() {
let s1 = String::from("hello");
let s2 = s1;
println!("{} {}", s1, s2);
}
error[E0382]: borrow of moved value: `s1`
进阶!
Rust 中s2 = s1
进行的是 move 的操作。如果想要 s1 和 s2 都有效,应该使用.clone()
:
let s1 = String::from("hello");
let s2 = s1.clone();
println!("{} {}", s1, s2);
// hello hello
在现代 C++中有类似的功能,std::move()
.