¿Cuál es la sobrecarga del tipo de opción de Rust?
En Rust, las referencias nunca pueden ser nulas, por lo que en caso de que realmente necesite nulas, como una lista enlazada, use laOption
tipo:
struct Element {
value: i32,
next: Option<Box<Element>>,
}
¿Cuánta sobrecarga está involucrada en esto en términos de asignación de memoria y pasos para eliminar la referencia en comparación con un simple puntero? ¿Hay alguna "magia" en el compilador / tiempo de ejecución para hacerOption
Gratis o menos costoso que si se implementaraOption
por uno mismo en una biblioteca no núcleo utilizando el mismoenum
construir, o envolviendo el puntero en un vector?