rust / beginner
Snippet
Struct-Instanzen erstellen
Structs gruppieren verwandte Daten. Der 'impl'-Block hängt Methoden an ein Struct. 'Self' bezieht sich auf den Struct-Typ, 'self' auf die Instanz. Das 'new' Konstruktor-Muster ist üblich. Instanzfelder werden mit Punktnotation zugegriffen.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct Person {name: String,age: u32,active: bool,}impl Person {fn new(name: &str, age: u32) -> Self {Self { name: String::from(name), age, active: true }}fn introduce(&self) {println!("Hi, I'm {} and I'm {} years old", self.name, self.age);}}fn main() {let alice = Person::new("Alice", 30);let bob = Person { name: String::from("Bob"), age: 25, active: true };alice.introduce();println!("{} is active: {}", bob.name, bob.active);}
Erklärung
1
struct Person { ... }
Struct-Definition mit drei Feldern verschiedener Typen
2
impl Person { fn new(...) -> Self { ... } }
Assoziierte Funktion als Konstruktor, gibt Self zurück
3
let alice = Person::new("Alice", 30);
Konstruktor mit :: Syntax aufrufen
4
alice.introduce();
Methodenaufruf nutzt Punktnotation, self wird geborgt