使用盒裝值

因為 Boxes 實現了 Deref<Target=T>,所以你可以使用盒裝值,就像它們包含的值一樣。

let boxed_vec = Box::new(vec![1, 2, 3]);
println!("{}", boxed_vec.get(0));

如果要在盒裝值上進行模式匹配,則可能必須手動取消引用該框。

struct Point {
    x: i32,
    y: i32,
}

let boxed_point = Box::new(Point { x: 0, y: 0});
// Notice the *. That dereferences the boxed value into just the value
match *boxed_point {
    Point {x, y} => println!("Point is at ({}, {})", x, y),
}