【问题标题】:Unable to infer enough type information about `_`; type annotations or generic parameter binding required无法推断出足够的关于 `_` 的类型信息;需要类型注释或泛型参数绑定
【发布时间】:2015-08-23 10:15:16
【问题描述】:

我正在尝试使用 &'static str 返回错误结果。

impl Worker {
    fn get_task_by_name(&self, name: String) -> Result<Box<Task>, &'static str> {
        Err("Task not found!");
    }
}

输出如下错误:

src/lib.rs:84:5: 84:8 error: unable to infer enough type information about `_`; type annotations or generic parameter binding required [E0282]
src/lib.rs:84     Err("Task not found!");
                  ^~~

这可能是什么问题?

【问题讨论】:

    标签: rust


    【解决方案1】:

    Err(...) 后面有一个虚假的分号。您是在告诉编译器丢弃您构造的值并返回 () 。当然,它并没有告诉你返回类型是错误的:它更直接地被你构造了一个 Result&lt;T, E&gt;::Err(E) 却没有告诉它 T 是什么这一事实弄糊涂了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多