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);} 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);}
fn main() { 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
s1 = hi there, s2 = hi thereSwitch s2=s1.clone() and s2=s1 output:
Compiling playground v0.0.1 (/playground) error[E0382]: borrow of moved value: `s1` --> src/main.rs:5:34 | 3 | let s1 = String::from("hi there"); | -- move occurs because `s1` has type `String`, which does not implement the `Copy` trait 4 | let s2=s1; // if had let s2 = s1; instead, next line would not work | -- value moved here 5 | println!("s1 = {}, s2 = {}", s1, s2); | ^^ value borrowed here after move For more information about this error, try `rustc --explain E0382`. error: could not compile `playground` due to previous error
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);}
let s1 = String::from("hi there"); let s2 = s1; println!("s1 = {}, s2 = {}", s1, s2);}
--> src/main.rs:4:34 |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!("s1 = {}, s2 = {}", s1, s2);
| ^^ value borrowed here after move
s2 = hi there
--> main2.rs:5:31 |2 | let s1 = String::from("Hello");
| -- move occurs because `s1` has type `String`, which does not implement the `Copy` trait3 | let s2 = s1;
| -- value moved here4 | 5 | println!("s1 = {}, s2 = {}", s1, s2);
| ^^ value borrowed here after move
let s1 = String::from("hi there\n"); let s2 = s1.clone(); // if had let s2 = s1; instead, next line would not work
println!("s1 = {} s2 = {}", s1, s2);} fn main() {
let s1 = String::from("Hello"); let s2 = s1;
println!("s1 = {}, s2 = {}", s1, s2);}
let x = 20; let y = x; let s1 = String::from("hi there"); // let s2= s1; let s2 = s1.clone(); println!("s1 = {}, s2={}",s1,s2);}
let x = 20; let y = x; let s1 = String::from("hi there"); let s2= s1; // let s2 = s1.clone(); println!("s1 = {}, s2={}",s1,s2);}
Code: fn main(){ 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 Modified code error[E0382]: borrow of moved value: `s1` --> inclass.rs:4:31 | 2 | let s1 = String::from("hi there"); | -- move occurs because `s1` has type `String`, which does not implem ent 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 error: aborting due to previous error For more information about this error, try `rustc --explain E0382`. (Edited: 2021-10-06)