2015-08-23 17 views
6

Tôi đang cố gắng trả về lỗi Kết quả bằng số &'static str.Không thể suy ra đủ thông tin về loại `_`; nhập chú thích hoặc ràng buộc tham số chung yêu cầu

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

Nó ra các lỗi sau:

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!"); 
        ^~~ 

gì có thể là vấn đề ở đây?

Trả lời

11

Bạn có dấu chấm phẩy giả sau Err(...). Bạn đang yêu cầu trình biên dịch vứt bỏ giá trị mà bạn xây dựng và trả lại () thay thế. Tất nhiên, nó không nhận được như xa như nói với bạn loại trở lại là sai: nó ngay lập tức bối rối bởi thực tế là bạn đã xây dựng một Result<T, E>::Err(E) mà không nói với nó những gì T là.

Các vấn đề liên quan