AndyJado 发表于 2023-03-08 09:10
playground
只有 unwrap 在遇到错误的时候会 painc,option 在遇到没有纸的情况会返回 None ,Result 是 option的一种特列,是rust 处理错误的一种方式和哲学,这里的?意味着当遇见错误的时候返回 Err。详细的内容可以看一下https://rustwiki.org/zh-CN/rust-by-example/error.html 错误处理的章节
-- 👇 xh1109: 当你的 Option 类型数据没有值,需要Panic 的时候 可以使用 ? 。
目前只能在返回 Option 的函数和闭包内使用。
想要在表达式中使用,需要 try { } (in nightly Rust)。
try { }
语法糖,什么时候都能使用
哪里可以使用 ? 运算符
错误信息也提到 ? 也可用于 Option 值。如同对 Result 使用 ? 一样,只能在返回 Option 的函数中对 Option 使用 ?。在 Option 上调用 ? 运算符的行为与 Result<T, E> 类似:如果值是 None,此时 None 会从函数中提前返回。如果值是 Some,Some 中的值作为表达式的返回值同时函数继续。
当你的 Option 类型数据没有值,需要Panic 的时候 可以使用 ? 。
评论区
写评论只有 unwrap 在遇到错误的时候会 painc,option 在遇到没有纸的情况会返回 None ,Result 是 option的一种特列,是rust 处理错误的一种方式和哲学,这里的?意味着当遇见错误的时候返回 Err。详细的内容可以看一下https://rustwiki.org/zh-CN/rust-by-example/error.html 错误处理的章节
--
👇
xh1109: 当你的 Option 类型数据没有值,需要Panic 的时候 可以使用 ? 。
目前只能在返回 Option 的函数和闭包内使用。
想要在表达式中使用,需要
try { }
(in nightly Rust)。playground
语法糖,什么时候都能使用
哪里可以使用 ? 运算符
当你的 Option 类型数据没有值,需要Panic 的时候 可以使用 ? 。