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