Quelle est l'importance des frais généraux de Option<T> en Rust par rapport aux pointeurs nuls ?
Bonjour à tous ! Je viens de commencer à apprendre Rust, après être passé du C++. Là-bas, j'avais l'habitude d'utiliser nullptr ou NULL pour indiquer l'absence de valeur. En Rust, on utilise plutôt Option, et une question me taraude : est-ce que cela coûte cher ? En C++, un pointeur nul est simplement 0, sans aucun coût supplémentaire.
Par exemple, j'ai une structure comme celle-ci :
```rust
struct Node {
value: i32,
left: Option>,
right: Option>,
}
```
Si je fais `left: None`, Rust doit stocker quelque part un drapeau qui indique que c'est None. Cela signifie que chaque Option prend plus de mémoire qu'un pointeur brut ? Ou le compilateur optimise-t-il cela ?
J'ai essayé de vérifier la taille :
```rust
use std::mem::size_of;
fn main() {
println!("{}", size_of::