Merge pull request #15 from 871f/patch-10

Update ch19-04-advanced-types.md
This commit is contained in:
Aaran Xu 2021-10-26 01:25:21 +08:00 committed by GitHub
commit 312a12e5cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -200,7 +200,7 @@ Rust 需要知道应该为特定类型的值分配多少内存,同时所有同
可以将 `str` 与所有类型的指针结合:比如 `Box<str>``Rc<str>`。事实上之前我们已经见过了不过是另一个动态大小类型trait。每一个 trait 都是一个可以通过 trait 名称来引用的动态大小类型。在第十七章 [“为使用不同类型的值而设计的 trait 对象”][using-trait-objects-that-allow-for-values-of-different-types] 部分,我们提到了为了将 trait 用于 trait 对象,必须将他们放入指针之后,比如 `&dyn Trait``Box<dyn Trait>``Rc<dyn Trait>` 也可以)。
为了处理 DSTRust 有一个特定的 trait 来定一个类型的大小是否在编译时可知:这就是 `Sized` trait。这个 trait 自动为编译器在编译时就知道大小的类型实现。另外Rust 隐式的为每一个泛型函数增加了 `Sized` bound。也就是说对于如下泛型函数定义
为了处理 DSTRust 有一个特定的 trait 来定一个类型的大小是否在编译时可知:这就是 `Sized` trait。这个 trait 自动为编译器在编译时就知道大小的类型实现。另外Rust 隐式的为每一个泛型函数增加了 `Sized` bound。也就是说对于如下泛型函数定义
```rust,ignore
fn generic<T>(t: T) {