Was ist der Overhead von Rusts Optionstyp?

In Rust können Referenzen niemals null sein. In dem Fall, dass Sie also null benötigen, wie z. B. eine verknüpfte Liste, verwenden Sie dieOption Art:

struct Element {
    value: i32,
    next: Option<Box<Element>>,
}

Wie viel Overhead ist in Bezug auf die Speicherzuordnung und die Schritte zur Dereferenzierung im Vergleich zu einem einfachen Zeiger damit verbunden? Gibt es etwas "Magie" im Compiler / in der Laufzeit zu machenOption kostenlos oder kostengünstiger als bei einer ImplementierungOption von sich selbst in einer Nicht-Kernbibliothek, die dieselbe verwendetenum konstruieren oder indem man den Zeiger in einen Vektor einwickelt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage