Rust 程序设计语言 简体中文版 1.85.0寻找所有泛型代码被调用的位置并使用泛型代码针对具体类型生成代码。 让我们看看这在标准库的 Option枚举上是如何工作的: let integer = Some(5); let float = Some(5.0); 当 Rust 编译这些代码的时候,它会进行单态化。编译器会读取传递给 Option 的值并发现 有两种 Option :一个对应 i32 另一个对应 f64。为此,它会将泛型定义 Option None, } fn main() { let integer = Option_i32::Some(5); let float = Option_f64::Some(5.0); } 泛型 Option 被编译器替换为了具体的定义。因为 Rust 会将每种情况下的泛型代码编译为 具体类型,使用泛型没有运行时开销。当代码运行时,它的执行效率就跟好像手写每个具体定 义的重复代码一样。这个单态化过程正是 `target/debug/hello` Request: [ "GET / HTTP/1.1", "Host: 127.0.0.1:7878", "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:99.0) Gecko/20100101 Firefox/99.0", "Accept: text/html,application/xhtml+xml 0 码力 | 562 页 | 3.23 MB | 23 天前3
共 1 条
- 1













