In Rust, i riferimenti non possono mai essere nulli, quindi nel caso in cui sia effettivamente necessario nullo, come un elenco collegato, si utilizza il Option
tipo:
struct Element {
value: i32,
next: Option<Box<Element>>,
}
Quanto overhead è coinvolto in questo in termini di allocazione della memoria e passaggi per la dereferenziazione rispetto a un semplice puntatore? C'è qualche "magia" nel compilatore / runtime da rendere a Option
costo zero o meno costoso che se si implementasse Option
da soli in una libreria non core utilizzando lo stesso enum
costrutto o avvolgendo il puntatore in un vettore?
Option
enumerazioni " simili", quindi funzionerà anche per una definizione definita dall'utenteOption
.