我正在为嵌入式项目编写Rust,而我的main函数签名是
#[entry]
fn main() -> !
Run Code Online (Sandbox Code Playgroud)
我知道这意味着它永远不会返回,而且我通常在main的末尾进入无限循环。
我想?在主要功能中使用try运算符,但无法在文档中搜索rust ? in !。我该如何用单词拼写出来?
我可以?在() -> !功能中使用吗?
我可以
?在() -> !函数中使用吗
否。?运算符是一个表达式,X?其大致解释为:
match X {
Ok(success_value) => success_value,
Err(err_value) => {
return Err(err_value); // returns from the enclosing function
}
}
Run Code Online (Sandbox Code Playgroud)
注意?表达式如何暗示使用它的函数的返回。为了X?进行编译,函数的返回类型必须是Result其错误变量与的错误变量兼容的X。返回永不类型的函数!明确承诺永不返回,因此其返回类型与运算符所return暗示的不兼容?。
永不返回的函数应该使用match或等效方法来选择错误结果,以选择适当的操作,或者调用.unwrap()或.expect()将其转换为紧急情况。
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |