A Rust, i riferimenti non può mai essere nullo, così nel caso in cui hai veramente bisogno nullo, come ad esempio una lista collegata, si utilizza il tipo Option
:Qual è il sovraccarico del tipo di opzione di Rust?
struct Element {
value: i32,
next: Option<Box<Element>>,
}
Quanto testa è coinvolta in questo in termini di memoria allocazione e passaggi alla dereferenziazione rispetto ad un semplice puntatore? C'è del "magico" nel compilatore/runtime per rendere Option
esente da costi, o meno costoso che se si dovesse implementare Option
da soli in una libreria non core usando lo stesso costrutto enum
o avvolgendo il puntatore in un vettore ?
Inoltre, questa ottimizzazione si verifica in tutte le enumerazioni di tipo "opzioni", quindi funzionerà anche con un'opzione definita dall'utente. –