< 返回版块

foonsun 发表于 2020-03-03 23:58

例如: let body = reqwest::get(request.as_str())?.text()?; ::log::info!("result: {:?}", body.clone());

后面的?如何理解,没有搜到这里的用法,麻烦说明或者给个文档链接,谢谢!

评论区

写评论
chengxiao 2020-03-04 10:31

问题居然发重了,我再复制一份,哈哈

问号操作符在官方的教程里介绍过了,建议从头看一遍。一般来说,我碰到的问题都可以从下面三个地方里找到答案

  1. The Rust Programming Language

https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html

  1. rust2018版本说明

https://doc.rust-lang.org/edition-guide/rust-2018/error-handling-and-panics/the-question-mark-operator-for-easier-error-handling.html

  1. rust reference

https://doc.rust-lang.org/reference/expressions/operator-expr.html#the-question-mark-operator

作者 foonsun 2020-03-04 08:57

好的,谢谢,我看下! 对以下内容的回复:

作者 foonsun 2020-03-04 08:56

谢谢大神! 对以下内容的回复:

obotisr 2020-03-04 08:46

处理result结果的缩写,等效于match进行模式匹配,没错误就提取数据,有错误就返回error。当然println里的:?是另一个意思,是为了输出更多debug信息。

WtzLAS 2020-03-04 00:30

https://doc.rust-lang.org/std/macro.try.html

在下面有写这个?操作符和try!宏是差不多的。

1 共 5 条评论, 1 页