In Rust können Referenzen niemals null sein. Wenn Sie also tatsächlich null benötigen, z. B. eine verknüpfte Liste, verwenden Sie den Option
Typ:
struct Element {
value: i32,
next: Option<Box<Element>>,
}
Wie viel Overhead ist damit in Bezug auf die Speicherzuweisung und die Schritte zur Dereferenzierung im Vergleich zu einem einfachen Zeiger verbunden? Gibt es eine "Magie" im Compiler / zur Laufzeit, die Option
kostenlos oder kostengünstiger zu machen ist , als wenn man sie Option
selbst in einer Nicht-Kernbibliothek mit demselben enum
Konstrukt implementieren oder den Zeiger in einen Vektor einschließen würde?
quelle
Option
ähnlichen" Aufzählungen, sodass sie auch für eine benutzerdefinierte Aufzählung funktioniertOption
.Result<i32, i32>
, können Sie sehen, dass die Optimierung erneut angewendet wird.