En Rust, les références ne peuvent jamais être nulles, donc dans le cas où vous avez réellement besoin de null, comme une liste chaînée, vous utilisez l'attribut Option
type :
struct Element {
value: i32,
next: Option<Box<Element>>,
}
Quelle est la surcharge en termes d'allocation de mémoire et d'étapes de déréférencement par rapport à un simple pointeur ? Existe-t-il une certaine "magie" dans le compilateur/le temps d'exécution pour faire de la Option
sans frais, ou moins coûteux que si l'on devait mettre en œuvre Option
par soi-même dans une bibliothèque non centrale utilisant la même enum
ou en enveloppant le pointeur dans un vecteur ?