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

时间:2014-10-13 16:30:53

标签: arguments rust traits boxing

我一直在&#34;大小没有实现&#34;。如何让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());
}

full code

1 个答案:

答案 0 :(得分:4)

您可以改用Option<Box<Coord>>Box<T>能够获取未经过身份验证的数据,但Option不是。

您只能通过引用使用未经过类型化的类型,并且无法直接处理它们的实例。 (Rust需要始终知道堆栈上数据的大小)