【发布时间】:2015-02-02 21:18:52
【问题描述】:
考虑这个例子:
trait MyTrait {
fn maybe_new() -> Option<Self>;
}
impl MyTrait for i32 {...}
fn hello() {
match MyTrait::maybe_new() {
Some(x) => ...,
None => ...,
}
}
编译失败,因为无法推断 x 的类型。有没有办法添加一个类型注释来完成这项工作,而不必像这样将 Maybe_new() 分解成一个 let 语句?:
let p:Option<i32> = MyTrait::maybe_new();
match p {
Some(x) => ...,
None => ...,
}
【问题讨论】: