< 返回版块

AndyJado 发表于 2023-03-08 09:10

评论区

写评论
DiceMo 2023-03-14 11:03

只有 unwrap 在遇到错误的时候会 painc,option 在遇到没有纸的情况会返回 None ,Result 是 option的一种特列,是rust 处理错误的一种方式和哲学,这里的?意味着当遇见错误的时候返回 Err。详细的内容可以看一下https://rustwiki.org/zh-CN/rust-by-example/error.html 错误处理的章节

--
👇
xh1109: 当你的 Option 类型数据没有值,需要Panic 的时候 可以使用 ? 。

苦瓜小仔 2023-03-08 10:12

目前只能在返回 Option 的函数和闭包内使用。

想要在表达式中使用,需要 try { } (in nightly Rust)。

playground

abliger 2023-03-08 10:08

语法糖,什么时候都能使用

HC97 2023-03-08 10:04

哪里可以使用 ? 运算符

错误信息也提到 ? 也可用于 Option 值。如同对 Result 使用 ? 一样,只能在返回 Option 的函数中对 Option 使用 ?。在 Option 上调用 ? 运算符的行为与 Result<T, E> 类似:如果值是 None,此时 None 会从函数中提前返回。如果值是 Some,Some 中的值作为表达式的返回值同时函数继续。

xh1109 2023-03-08 09:22

当你的 Option 类型数据没有值,需要Panic 的时候 可以使用 ? 。

1 共 5 条评论, 1 页