|
|
@ -243,7 +243,7 @@ thread 'main' panicked at 'Failed to open hello.txt: Error { repr: Os { code:
|
|
|
|
|
|
|
|
|
|
|
|
注意你可以在返回 `Result` 的函数中对 `Result` 使用 `?` 运算符,可以在返回 `Option` 的函数中对 `Option` 使用 `?` 运算符,但是不可以混合搭配。`?` 运算符不会自动将 `Result` 转化为 `Option`,反之亦然;在这些情况下,可以使用类似 `Result` 的 `ok` 方法或者 `Option` 的 `ok_or` 方法来显式转换。
|
|
|
|
注意你可以在返回 `Result` 的函数中对 `Result` 使用 `?` 运算符,可以在返回 `Option` 的函数中对 `Option` 使用 `?` 运算符,但是不可以混合搭配。`?` 运算符不会自动将 `Result` 转化为 `Option`,反之亦然;在这些情况下,可以使用类似 `Result` 的 `ok` 方法或者 `Option` 的 `ok_or` 方法来显式转换。
|
|
|
|
|
|
|
|
|
|
|
|
目前为止,我们所使用的所有 `main` 函数都返回 `()`。`main` 函数是特殊的因为它是可执行程序的入口点和退出点,为了使程序能正常工作其可以返回的类型使有限制的。
|
|
|
|
目前为止,我们所使用的所有 `main` 函数都返回 `()`。`main` 函数是特殊的因为它是可执行程序的入口点和退出点,为了使程序能正常工作,其可以返回的类型是有限制的。
|
|
|
|
|
|
|
|
|
|
|
|
幸运的是 `main` 函数也可以返回 `Result<(), E>`, 示例 9-12 中的代码来自示例 9-10 不过修改了 `main` 的返回值为 `Result<(), Box<dyn Error>>` 并在结尾增加了一个 `Ok(())` 作为返回值。这段代码可以编译:
|
|
|
|
幸运的是 `main` 函数也可以返回 `Result<(), E>`, 示例 9-12 中的代码来自示例 9-10 不过修改了 `main` 的返回值为 `Result<(), Box<dyn Error>>` 并在结尾增加了一个 `Ok(())` 作为返回值。这段代码可以编译:
|
|
|
|
|
|
|
|
|
|
|
|