rust / intermediate
Snippet
Interne Veränderbarkeit mit RefCell
RefCell<T> bietet 'Interne Veränderbarkeit', ein Muster, das es ermöglicht, Daten zu verändern, selbst wenn man eine unveränderliche Referenz auf diese Daten hat. Die Borrowing-Regeln werden zur Laufzeit statt zur Kompilierzeit erzwungen.
snippet.rs
1
2
3
4
5
6
7
8
use std::cell::RefCell;let value = RefCell::new(5);{let mut borrowed_value = value.borrow_mut();*borrowed_value += 10;}println!("Value: {:?}", value.borrow());
Erklärung
1
RefCell::new(5)
Kapselt einen Wert in einer RefCell, um interne Veränderbarkeit zu ermöglichen.
2
value.borrow_mut()
Prüft dynamisch auf bestehende Borrows und gibt eine veränderliche Referenz zurück.