let s1 = String::from("hi there"); let s2 = s1.clone(); // if had let s2 = s1; instead, next line would not work println!("s1 = {}, s2 = {}", s1, s2); } output: s1 = hi there, s2 = hi there fn main() { let s1 = String::from("hi there"); let s2 = s1; // if had let s2 = s1; instead, next line would not work println!("s1 = {}, s2 = {}", s1, s2); } output: error[E0382]: borrow of moved value: `s1` --> src/main.rs:4:30 | 2 | let s1 = String::from("hi there"); | -- move occurs because `s1` has type `String`, which does not implement the `Copy` trait 3 | let s2 = s1; // if had let s2 = s1; instead, next line would not work | -- value moved here 4 | println!("s1 = {}, s2 = {}", s1, s2); | ^^ value borrowed here after move
let s1 = String::from("hi there"); let s2 = s1.clone(); // if had let s2 = s1; instead, next line would not work println!("s1 = {}, s2 = {}", s1, s2);} Output: s1 = hi there, s2 = hi there Edited: fn main() {
let s1 = String::from("hi there"); let s2 = s1; // if had let s2 = s1; instead, next line would not work println!("s1 = {}, s2 = {}", s1, s2);} Output: error[E0382]: borrow of moved value: `s1`
--> rustICA10_6.rs:5:34 |3 | let s1 = String::from("hi there");
| -- move occurs because `s1` has type `String`, which does not implement the `Copy` trait4 | let s2 = s1; // if had let s2 = s1; instead, next line would not work
| -- value moved here5 | println!("s1 = {}, s2 = {}", s1, s2);
| ^^ value borrowed here after move
fn main(){ let s1 = String::from("hi there"); let s2 = s1; println!("s1 = {}, s2 = {}", s1, s2);} error[E0382]: borrow of moved value: `s1` --> main.rs:22:31 | 20 | let s1 = String::from("hi there"); | -- move occurs because `s1` has type `String`, which does not implement the `Copy` trait 21 | let s2 = s1; | -- value moved here 22 | println!("s1 = {}, s2 = {}", s1, s2); | ^^ value borrowed here after move error: aborting due to previous error For more information about this error, try `rustc --explain E0382`. (Edited: 2021-10-10)
let s1 = String::from("hi there"); let s2 = s1.clone(); // if had let s2 = s1; instead, next line would not work println!("Result: s1 = {}, s2 = {}", s1, s2);}
let s1 = String::from("hi there"); let s2 = s1; // if had let s2 = s1; instead, next line would not work println!("Result: s1 = {}, s2 = {}", s1, s2);}
--> src/main.rs:4:42 |2 | let s1 = String::from("hi there");
| -- move occurs because `s1` has type `String`, which does not implement the `Copy` trait3 | let s2 = s1; // if had let s2 = s1; instead, next line would not work
| -- value moved here4 | println!("Result: s1 = {}, s2 = {}", s1, s2);
| ^^ value borrowed here after move
let s1 = String::from("hi there"); let s2 = s1.clone(); // if had let s2 = s1; instead, next line would not work println!("s1 = {}, s2 = {}", s1, s2); } output: s1 = hi there, s2 = hi there fn main() { let s1 = String::from("hi there"); let s2 = s1; // if had let s2 = s1; instead, next line would not work println!("s1 = {}, s2 = {}", s1, s2); } output: error[E0382]: borrow of moved value: `s1` --> src/main.rs:4:30 | 2 |let s1 = String::from("hi there"); |-- move occurs because `s1` has type `String`, which does not implement the | Copy' trait 3 | let s2 = s1; // if had let s2 = s1; instead, next line would not work | -- value moved here 4 | println!("s1 = {}, s2 = {}", s1, s2); | ^^ value borrowed here after move
let s1 = String::from("hi there"); let s2 = s1.clone(); println!("s1 = {}, s2 = {}", s1, s2);}
let s1 = String::from("hi there"); s2 = s1; println!("s1 = {}, s2 = {}", s1, s2);}
println!("s1 = {}, s2 = {}", s1, s2);}
let s1 = String::from("hi there"); let s2 = s1; println!("s1 = {}, s2 = {}", s1, s2);}
--> rust.rs:4:31 |2 | let s1 = String::from("hi there");
| -- move occurs because `s1` has type `String`, which does not implement the `Copy` trait3 | let s2 = s1;
| -- value moved here4 | println!("s1 = {}, s2 = {}", s1, s2);
| ^^ value borrowed here after move