rust / beginner
Snippet
Methoden definieren und implementieren mit impl
Der impl-Block verknupft Funktionen und Methoden mit einem Struct. Methoden nehmen self (oder &self, &mut self) als ersten Parameter. Assoziierte Funktionen wie new werden haufig als Konstruktoren verwendet und nehmen kein self.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct Rectangle {width: u32,height: u32,}impl Rectangle {fn area(&self) -> u32 {self.width * self.height}fn new(width: u32, height: u32) -> Self {Rectangle { width, height }}}fn main() {let rect = Rectangle::new(30, 50);println!("Area: {}", rect.area());}
Erklärung
1
struct Rectangle {
Struct-Definition mit zwei vorzeichenlosen 32-Bit Integer-Feldern
2
width: u32,
Feld, das die Breite des Rechtecks speichert
3
height: u32,
Feld, das die Hohe des Rechtecks speichert
4
impl Rectangle {
Implementierungsblock fur das Rectangle-Struct
5
fn area(&self) -> u32 {
Methode, die self unveranderlich borrowt und unsigned 32-bit Integer zuruckgibt
6
self.width * self.height
Multipliziert Breite und Hoehenfelder zur Flachenberechnung
7
fn new(width: u32, height: u32) -> Self {
Assoziierte Konstruktorfunktion, die eine neue Rectangle-Instanz zuruckgibt