我正在尝试从 reqwest文档中复制一个示例。这是示例:
let body = reqwest::get("https://www.rust-lang.org")?
.text()?;
在 Cargo.toml 文件中添加该reqwest = "0.10.10"
行后,我在文件中添加以下代码main.rs
:
extern crate reqwest;
fn main() {
let body = reqwest::get("https://www.rust-lang.org")?.text()?;
println!("body = {:?}", body);
}
此代码不编译并返回以下错误:
cannot use the `?` operator in a function that returns `()`
我对这种行为有点惊讶,因为我的代码几乎是文档代码。
我认为这?
仅适用于 Response 对象,因此我检查了该get
方法返回的对象:
extern crate reqwest;
fn print_type_of<T>(_: &T) {
println!("{}", std::any::type_name::<T>())
}
fn main() {
let body = reqwest::get("https://www.rust-lang.org");
print_type_of(&body);
}
输出:
core::future::from_generator::GenFuture<reqwest::get<&str>::{{closure}}
我的意思是,为什么我没有得到一个 Response 对象,就像文档一样?