區位最佳化

#[derive(Debug)]
enum List<T> {
    Cons(T, Box<List<T>>),
    Nil,
}

fn main() {
    let list: List<i32> = List::Cons(1, Box::new(List::Cons(2, Box::new(List::Nil))));
    println!("{list:?}");
}

Box 不能空白,因此指標會一律有效,而且不會是 null。這樣一來,編譯器可以將記憶體配置最佳化:

StackHeaplist12null