В Rust ссылки никогда не могут быть нулевыми, поэтому в случае, когда вам действительно нужен нуль, например связанный список, вы используете тип Option
:
struct Element {
value: i32,
next: Option<Box<Element>>,
}
Сколько издержек связано с этим с точки зрения распределения памяти и шагов для разыменования по сравнению с простым указателем? Есть ли какая-то "магия" в компиляторе/времени выполнения, чтобы сделать Option
без затрат или менее дорогостоящим, чем если бы один из них реализовал Option
самостоятельно в неосновной библиотеке, используя ту же конструкцию enum
, или обертывание указателя в вектор?