Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

使用 ? 解包 Option

你可以使用 match 语句来解包 Option,但使用 ? 运算符通常更简便。如果 x 是一个 Option,那么求值 x? 将在 xSome 时返回其内部值,否则它将终止当前执行的函数并返回 None

fn next_birthday(current_age: Option<u8>) -> Option<String> { // 如果 `current_age` 是 `None`,这将返回 `None`。 // 如果 `current_age` 是 `Some`,内部的 `u8` 值加 1 // 后被赋值给 `next_age` let next_age: u8 = current_age? + 1; Some(format!("明年我将会 {} 岁", next_age)) }

你可以将多个 ? 链接在一起,使你的代码更易读。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX