capypad
0 Tage Serie
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
rust
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