Update result.md
@ -285,7 +285,7 @@ fn first(arr: &[i32]) -> Option<&i32> {
arr.get(0)?
}
```
这段代码无法通过编译,切记:`?` 操作符需要一个变量来承载正确的值,只有错误值能直接返回,正确的值不行。因此 `?` 只能用于以下形式:
这段代码无法通过编译,切记:`?` 操作符需要一个变量来承载正确的值,这个函数只会返回 `Some(&i32)` 或者 `None`,只有错误值能直接返回,正确的值不行,所以如果数组中存在 0 号元素,那么函数第二行使用 `?` 后的返回类型为 `&i32` 而不是 `Some(&i32)`。因此 `?` 只能用于以下形式:
- `let v = xxx()?;`
- `xxx()?.yyy()?;`