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