- 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 }