Box<Error> --> Box<dyn Error>

pull/320/head
icey-self 5 years ago committed by GitHub
parent 6dc52d9ab4
commit d8c7a75c12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -328,7 +328,7 @@ fn run(config: Config) -> Result<(), Box<dyn Error>> {
<span class="caption">示例 12-12修改 `run` 函数返回 `Result`</span>
这里我们做出了三个明显的修改。首先,将 `run` 函数的返回类型变为 `Result<(), Box<Error>>`。之前这个函数返回 unit 类型 `()`,现在它仍然保持作为 `Ok` 时的返回值。
这里我们做出了三个明显的修改。首先,将 `run` 函数的返回类型变为 `Result<(), Box<dyn Error>>`。之前这个函数返回 unit 类型 `()`,现在它仍然保持作为 `Ok` 时的返回值。
对于错误类型,使用了 **trait 对象** `Box<dyn Error>`(在开头使用了 `use` 语句将 `std::error::Error` 引入作用域)。第十七章会涉及 trait 对象。目前只需知道 `Box<dyn Error>` 意味着函数会返回实现了 `Error` trait 的类型,不过无需指定具体将会返回的值的类型。这提供了在不同的错误场景可能有不同类型的错误返回值的灵活性。这也就是 `dyn`,它是 “动态的”“dynamic”的缩写。

Loading…
Cancel
Save