| // Structs, Borrowing |
| |
| #![allow(dead_code)] |
| |
| use rust_tutorial::*; |
| |
| fn greet_person_1(p: Person) { |
| println!("Hello {} ({})!", p.name, p.age); |
| } |
| |
| fn greet_person_2(p: &Person) { |
| println!("Hello {} ({})!", p.name, p.age); |
| } |
| |
| fn birthday(p: &mut Person) { |
| p.age += 1; |
| } |
| |
| fn main() { |
| // -- Struct instantiation -- |
| let mut p = Person { |
| age: 30, |
| name: "Mary".to_string(), |
| }; |
| |
| // -- Borrowing -- |
| //greet_person_1(p); |
| //greet_person_1(p); |
| |
| greet_person_2(&p); |
| greet_person_2(&p); |
| |
| birthday(&mut p); |
| |
| greet_person_2(&p); |
| |
| // -- Traits -- |
| println!("p = {}", p.to_string()); |
| |
| // -- Debugging -- |
| let x = dbg!(100 + 2) + 3; |
| println!("Hello, world! 100 + 2 + 3 = {}", x); |
| } |