2

为了试验 Hyper,我从GET 示例开始。除了该示例无法编译(no method `get` in `client`)这一事实之外,我将我的问题提炼为一行:

fn temp() {
    let client = Client::new();
}

此代码不会编译:

 unable to infer enough type information about `_`; type annotations or generic parameter binding required [E0282]
4

1 回答 1

4

一般来说,这个错误意味着Client有一些通用参数,编译器无法推断它的值。你必须以某种方式告诉它。

这是示例std::vec::Vec

use std::vec::Vec;

fn problem() {
    let v = Vec::new(); // Problem, which Vec<???> do you want?
}

fn solution_1() {
    let mut v = Vec::<i32>::new(); // Tell the compiler directly
}

fn solution_2() {
    let mut v: Vec<i32> = Vec::new(); // Tell the compiler by specifying the type
}

fn solution_3() {
    let mut v = Vec::new();
    v.push(1); // Tell the compiler by using it
}

hyper::client::Client没有任何通用参数。您确定Client您要实例化的是来自 Hyper 的那个吗?

于 2016-09-07T12:30:46.823 回答