rust / beginner
Snippet
Verstehen von Borrowing und Referenzen
Borrowing ermöglicht es, Werte zu nutzen, ohne Besitz zu übernehmen. Durch das Übergeben einer Referenz `&` leiht die Funktion den Wert temporär aus. Der ursprüngliche Besitzer `s1` bleibt nach dem Funktionsaufruf gültig. Rust erzwingt Borrowing-Regeln zur Kompilierzeit und verhindert hängende Referenzen und Data Races.
snippet.rs
1
2
3
4
5
6
7
8
9
10
fn main() {let s1 = String::from("Hello");let len = calculate_length(&s1);println!("The length of '{}' is {}.", s1, len);}fn calculate_length(s: &String) -> usize {s.len()}
Erklärung
1
let s1 = String::from("Hello");
Erstellt einen String-Wert, der `s1` gehört.
2
calculate_length(&s1)
Übergibt eine Referenz an `s1`, nicht den Wert selbst.
3
fn calculate_length(s: &String)
Parameter `s` leiht eine String-Referenz aus. Die Funktion besitzt die Daten nicht.
4
s.len()
Greift auf die geliehene Referenz zu, um ihre Länge zu erhalten.