我一直在玩 Rust 并且遇到了以下代码:
fn request(&url) -> Result<(), Box<dyn std::error::Error>> {
let mut res = reqwest::get(&url)?;
let mut body = String::new();
res.read_to_string(&mut body)?;
println!("Status: {}", res.status());
println!("Headers:\n{:#?}", res.headers());
println!("Body:\n{}", body);
Ok(())
}
我的理解是:
fn request(&url) -> Result<(), Box<dyn std::error::Error>> {
定义具有单个(借用)参数并用于Result
处理错误的函数。
let mut res = reqwest::get(&url)?;
定义一个可变变量来存储来自reqwest
crateget
方法的响应对象。
let mut body = String::new();
定义一个可变变量来存储 responseText 字符串。
res.read_to_string(&mut body)?;
此方法将 存储responseText
在body
变量中。
println!("Status: {}", res.status());
println!("Headers:\n{:#?}", res.headers());
println!("Body:\n{}", body);
打印三个包含响应状态、标题和正文的格式化字符串(带有尾随的新行)。
Ok(())
Result
通过..?处理错误?
问题:
- 空括号是什么
Result<()
意思OK(())
/做什么? - 是什么
Box<dyn std::error::Error>
?