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