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