rust / intermediate
Snippet
Strukturmethoden und assoziierte Funktionen
Strukturen in Rust gruppieren verwandte Daten. Der impl-Block enthält Methoden, die auf der Struktur arbeiten. Die Funktion new ist eine assoziierte Funktion (Konstruktor), während area und scale Instanzmethoden sind. scale verwendet &mut self, um die Struktur zu modifizieren.
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
24
25
26
struct Rectangle {width: u32,height: u32,}impl Rectangle {fn new(width: u32, height: u32) -> Self {Rectangle { width, height }}fn area(&self) -> u32 {self.width * self.height}fn scale(&mut self, factor: u32) {self.width *= factor;self.height *= factor;}}fn main() {let mut r = Rectangle::new(5, 10);println!("Area: {}", r.area());r.scale(2);println!("Scaled area: {}", r.area());}
Erklärung
1
struct Rectangle {
Definiert eine Struktur mit zwei u32-Feldern
2
impl Rectangle {
Beginnt den Implementierungsblock für Rectangle
3
fn new(width: u32, height: u32) -> Self {
Assoziierte Funktion, die eine neue Rectangle-Instanz zurückgibt
4
fn area(&self) -> u32 {
Methode mit unveränderlichem Reference, gibt berechnete Fläche zurück
5
fn scale(&mut self, factor: u32) {
Methode mit veränderlicher Referenz zum Modifizieren der Struktur