### Hello world ```rust fn main() { // Our main function does one task: show a message // println! displays the input "Hello, world!" to the screen println!("Hello, world!"); } ``` --- ### Substitution ```rust fn main() { // Call println! with three arguments: a string, a value, a value println!("The first letter of the English alphabet is {} and the last letter is {}.", 'A', 'Z'); } ``` --- ### Variables Immuable: ```rust // Declare a variable let a_number; // Declare a second variable and bind the value let a_word = "Ten"; // Bind a value to the first variable a_number = 10; println!("The number is {}.", a_number); println!("The word is {}.", a_word); ``` Mutable: ```rust // The `mut` keyword lets the variable be changed let mut a_number = 10; println!("The number is {}.", a_number); // Change the value of an immutable variable a_number = 15; println!("Now the number is {}.", a_number); ``` Mise en mémoire fantôme: ```rust // Declare first variable binding with name "shadow_num" let shadow_num = 5; // Declare second variable binding, shadows existing variable "shadow_num" let shadow_num = shadow_num + 5; // Declare third variable binding, shadows second binding of variable "shadow_num" let shadow_num = shadow_num * 2; println!("The number is {}.", shadow_num); ``` --- ### Typer une variable ```rust let number: u32 = 14; println!("The number is {}.", number); ``` --- ### Tuple ```rust // Declare a tuple of three elements let tuple_e = ('E', 5i32, true); // Use tuple indexing and show the values of the elements in the tuple println!("Is '{}' the {}th letter of the alphabet? {}", tuple_e.0, tuple_e.1, tuple_e.2); ``` --- ### Struct ```rust // Instantiate classic struct, specify fields in random order, or in specified order let user_1 = Student { name: String::from("Constance Sharma"), remote: true, level: 2 }; let user_2 = Student { name: String::from("Dyson Tan"), level: 5, remote: false }; // Instantiate tuple structs, pass values in same order as types defined let mark_1 = Grades('A', 'A', 'B', 'A', 3.75); let mark_2 = Grades('B', 'A', 'A', 'C', 3.25); println!("{}, level {}. Remote: {}. Grades: {}, {}, {}, {}. Average: {}", user_1.name, user_1.level, user_1.remote, mark_1.0, mark_1.1, mark_1.2, mark_1.3, mark_1.4); println!("{}, level {}. Remote: {}. Grades: {}, {}, {}, {}. Average: {}", user_2.name, user_2.level, user_2.remote, mark_2.0, mark_2.1, mark_2.2, mark_2.3, mark_2.4); ```