Rust:如何将 Option<trait> 作为函数参数传递?

Bru*_*uce 2 boxing arguments traits rust

我不断收到“未实施调整大小”。如何让 wp 进入函数 foo?我认为拳击会给它一个大小,但无论有没有它,我都会得到同样的错误。

fn main() {
    let wp : Option<Waypoint>= new(45.1968, -75.1968);
    foo(box wp);
}

fn foo(wp: Box<Option<Coord>>) {
    println!("lat: {}, lon:{}", wp.lat(), wp.lon());
}
Run Code Online (Sandbox Code Playgroud)

完整代码

Man*_*rth 6

你可以Option<Box<Coord>>改用。Box<T>能够获取未调整大小的数据,但Option不能。

您只能通过引用使用 unsized 类型,而不能直接处理它们的实例。(Rust 需要时刻知道栈上数据的大小)