Wie groß ist der Overhead von Option<T> in Rust im Vergleich zu Nullzeigern?
Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen und komme von C++. Dort habe ich nullptr oder NULL verwendet, um das Fehlen eines Werts anzuzeigen. In Rust wird stattdessen Option verwendet, und mich quält die Frage: Wie teuer ist das? In C++ ist ein Nullzeiger einfach 0, und es gibt keine zusätzlichen Kosten.
Zum Beispiel habe ich so eine Struktur:
```rust
struct Node {
value: i32,
left: Option>,
right: Option>,
}
```
Wenn ich `left: None` setze, muss Rust irgendwo ein Flag speichern, das sagt, dass es None ist. Bedeutet das, dass jeder Option mehr Speicher belegt als ein roher Zeiger? Oder optimiert der Compiler das?
Ich habe versucht, die Größe zu überprüfen:
```rust
use std::mem::size_of;
fn main() {
println!("{}", size_of::
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Arbeiten mit Datenbanken in Rust: PostgreSQL und MongoDB
Nebenläufigkeit und Multithreading in Kotlin: Vollständiger Leitfaden
SOLID-Prinzipien in C#: Theorie und Praxis von A bis Z
PHP Fatal Error: Allowed Memory Size — Mythen entlarven und konfigurieren