Rust 程序设计语言 简体中文版 1.85.0
意味着函数会返回实现了 Error trait 的类型,不过无需指定具体将会返回的值的类型。这提 供了在不同的错误场景可能有不同类型的错误返回值的灵活性。这也就是 dyn,它是“动态 的”(“dynamic”)的缩写。 第二个改变是去掉了 expect 调用并替换为第九章讲到的 ? 运算符。不同于遇到错误就 panic!,? 会从函数中返回错误值并让调用者来处理它。 第三个修改是现在成功时这个函数会返回一个 的单态化处理:编译器为每一个被泛型类型参数代替的具体类型生成了函数和方法的非泛型实 现。单态化产生的代码在执行静态分发(static dispatch),也就是说编译器在编译时就知晓要 调用什么方法。这与动态分发 (dynamic dispatch)相对,这时编译器在编译时无法知晓要调 用哪个方法。在动态分发的场景下,编译器会生成负责在运行时确定该调用什么方法的代码。 当使用 trait 对象时,Rust 必须使用动态分发。编译器无法知晓所有可能用于0 码力 | 562 页 | 3.23 MB | 9 天前3
共 1 条
- 1