區位最佳化
#[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
。這樣一來,編譯器可以將記憶體配置最佳化:
#[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
。這樣一來,編譯器可以將記憶體配置最佳化: