mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-14 04:41:49 +08:00
修复错别字 简介 -> 简洁
This commit is contained in:
parent
64d2d26b04
commit
07b5f2848e
@ -239,7 +239,7 @@ thread 'main' panicked at 'Failed to open hello.txt: Error { repr: Os { code:
|
||||
|
||||
这个函数返回 `Option<char>` 因为它可能会在这个位置找到一个字符,也可能没有字符。这段代码获取 `text` 字符串 slice 作为参数并调用其 `lines` 方法,这会返回一个字符串中每一行的迭代器。因为函数希望检查第一行,所以调用了迭代器 `next` 来获取迭代器中第一个值。如果 `text` 是空字符串,`next` 调用会返回 `None`,此时我们可以使用 `?` 来停止并从 `last_char_of_first_line` 返回 `None`。如果 `text` 不是空字符串,`next` 会返回一个包含 `text` 中第一行的字符串 slice 的 `Some` 值。
|
||||
|
||||
`?` 会提取这个字符串 slice,然后可以在字符串 slice 上调用 `chars` 来获取字符的迭代器。我们感兴趣的是第一行的最后一个字符,所以可以调用 `last` 来返回迭代器的最后一项。这是一个 `Option`,因为有可能第一行是一个空字符串,例如 `text` 以一个空行开头而后面的行有文本,像是 `"\nhi"`。不过,如果第一行有最后一个字符,它会返回在一个 `Some` 成员中。`?` 运算符作用于其中给了我们一个简介的表达这种逻辑的方式。如果我们不能在 `Option` 上使用 `?` 运算符,则不得不使用更多的方法调用或者 `match` 表达式来实现这些逻辑。
|
||||
`?` 会提取这个字符串 slice,然后可以在字符串 slice 上调用 `chars` 来获取字符的迭代器。我们感兴趣的是第一行的最后一个字符,所以可以调用 `last` 来返回迭代器的最后一项。这是一个 `Option`,因为有可能第一行是一个空字符串,例如 `text` 以一个空行开头而后面的行有文本,像是 `"\nhi"`。不过,如果第一行有最后一个字符,它会返回在一个 `Some` 成员中。`?` 运算符作用于其中给了我们一个简洁的表达这种逻辑的方式。如果我们不能在 `Option` 上使用 `?` 运算符,则不得不使用更多的方法调用或者 `match` 表达式来实现这些逻辑。
|
||||
|
||||
注意你可以在返回 `Result` 的函数中对 `Result` 使用 `?` 运算符,可以在返回 `Option` 的函数中对 `Option` 使用 `?` 运算符,但是不可以混合搭配。`?` 运算符不会自动将 `Result` 转化为 `Option`,反之亦然;在这些情况下,可以使用类似 `Result` 的 `ok` 方法或者 `Option` 的 `ok_or` 方法来显式转换。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user