From d9789a24cb82449c136d4b3c66f1396fb72afccd Mon Sep 17 00:00:00 2001 From: "Peng Hailin," Date: Thu, 13 Apr 2023 06:57:51 +0800 Subject: [PATCH] Remove Ch22 --- src/Ch10_Generic_Types_Traits_and_Lifetimes.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Ch10_Generic_Types_Traits_and_Lifetimes.md b/src/Ch10_Generic_Types_Traits_and_Lifetimes.md index 2352c53..3aef4d1 100644 --- a/src/Ch10_Generic_Types_Traits_and_Lifetimes.md +++ b/src/Ch10_Generic_Types_Traits_and_Lifetimes.md @@ -445,18 +445,18 @@ fn main() { 咱们或许想知道,在运用了泛型参数时,是否有着运行时的开销。好消息就是,相比于使用具体类型,使用泛型不会令到咱们的程序运行得更慢。 -Rust 通过在编译时,完成那些使用了泛型代码的单态化,performing monomorphization of the code using generics,达成这个目的。所谓 *单态化,monomorphization*,是指即通过把在编译后用到的具体类型填入到泛型位置,而将通用代码转换为具体代码的过程。在此过程中,编译器会执行与清单 10-5 中曾创建通用函数相反的步骤:编译器会查看所有泛型代码被调用到的地方,并生成调用到泛型代码的那些具体类型的代码。 +Rust 通过在编译时,完成那些使用了泛型代码的单态化,performing monomorphization of the code using generics,达成这个目的。所谓 *单态化,monomorphization*,是指通过把编译后用到的具体类型,填入到泛型位置,而将通用代码转换为具体代码的过程。在此过程中,编译器会执行与清单 10-5 中,咱们用来创建通用函数相反的步骤:编译器会查看泛型代码被调用到的所有地方,并为那些调用到的泛型代码,生成具体类型代码。 -下面就来通过使用标准库的通用 `Option` 枚举,看看单态化的工作原理: +咱们来通过使用标准库的通用 `Option` 枚举,看看单态化的工作原理: ```rust let integer = Some(5); let float = Some(5.0); ``` -在 Rust 编译此代码时,他就会执行单态化。在那个过程中,编译器会读取已在这两个 `Option` 实例中用到的值,并识别到两种类型的 `Option`:一个为 `i32`,同时另一个为 `f64`。就这样,编译器会将 `Option` 的通用定义,展开为两个专门用于 `i32` 与 `f64` 的定义,由此就用这些特定类型,对通用定义进行了替换。 +在 Rust 编译此代码时,他就会执行单态化。在那个过程中,编译器会读取已在这两个 `Option` 实例中用到的值,而识别到两种类型的 `Option`:一个为 `i32`,同时另一个为 `f64`。这样一来,编译器就会把 `Option` 的通用定义,展开为两个专门的 `i32` 与 `f64` 定义,由此就用这些特定类型,替换了通用定义。 -单态化后版本的该代码,看起来与下面的类似(编译器会使用不同于这里为演示目的而使用的名字): +单态化的代码版本,看起来与下面的类似(编译器会使用不同于这里为演示目的而使用的名字): 文件名:`src/main.rs`