Create a Rust project to work on during this chapter with cargo new chapter-one
Navigate to the newly created chapter-one folder. For the rest of this chapter, we will assume that your command line is currently in this directory
Inside the src folder, create a new folder called bin
Delete the generated lib.rs file, as we are not creating a library
In the src/bin folder, create a file called concat.rs
Add the following code and run it with cargo run --bin concat:
1 fn main() { 2 by_moving(); 3 by_cloning(); 4 by_mutating(); 5 } 6 7 fn by_moving() { 8 let hello = "hello ".to_string(); 9 let world = "world!"; 10 11 // Moving hello into a new variable 12 let hello_world = hello + world; 13 // Hello CANNOT be used anymore 14 println!("{}", hello_world); // Prints "hello world!" 15 } 16 17 fn by_cloning() { 18 let hello = "hello ".to_string(); 19 let world = "world!"; 20 21 // Creating a copy of hello and moving it into a new variable 22 let hello_world = hello.clone() + world; 23 // Hello can still be used 24 println!("{}", hello_world); // Prints "hello world!" 25 } 26 27 fn by_mutating() { 28 let mut hello = "hello ".to_string(); 29 let world = "world!"; 30 31 // hello gets modified in place 32 hello.push_str(world); 33 // hello is both usable and modifiable 34 println!("{}", hello); // Prints "hello world!" 35 }