rust / beginner
Snippet
Methodensyntax mit impl-Blöcken
Der impl-Block ermöglicht es dir, Methoden mit einem Struct zu verknüpfen. Methoden ähneln Funktionen, werden aber innerhalb eines impl-Blocks definiert und haben immer self als ersten Parameter. self bezieht sich auf die Instanz, auf der die Methode aufgerufen wird. Assoziierte Funktionen wie new() werden oft als Konstruktoren verwendet.
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 Rectangle {width: u32,height: u32,}impl Rectangle {fn area(&self) -> u32 {self.width * self.height}fn new(width: u32, height: u32) -> Rectangle {Rectangle { width, height }}fn can_hold(&self, other: &Rectangle) -> bool {self.width > other.width && self.height > other.height}}fn main() {let rect = Rectangle::new(30, 50);println!("Area: {}", rect.area());}
Erklärung
1
impl Rectangle { ... }
Block, das Methoden mit Rectangle verknüpft
2
fn area(&self) -> u32
Methode mit unveränderlicher Referenz auf self
3
Rectangle::new(30, 50)
Ruft assoziierte Funktion unter Verwendung des Struct-Namens auf