Update book/contents/advance/custom-type.md

pull/333/head
Sunface 3 years ago committed by GitHub
parent 231491e09c
commit 41d4be168e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -206,7 +206,7 @@ fn main() {
上述的这些集合虽然底层数据可动态变化,感觉像是动态大小的类型。但是实际上,这些底层数据只是保存在堆上,在栈中还存有一个引用类型,该引用包含了集合的内存地址、元素数目、分配空间信息,通过这些信息,编译器对于该集合的实际大小了若指掌,因此它们依然是固定大小的类型。
现在给你一个挑战:想出一个动态类型。俺厚黑地说一句,估计大部分人都想不出这样的一个类型,就连我,如果不是查询着资料写,估计也一时半会儿想不到一个。
现在给你一个挑战:想出一个动态类型。俺厚黑地说一句,估计大部分人都想不出这样的一个类型,就连我,如果不是查询着资料写,估计也一时半会儿想不到一个。
考虑一下这个类型:`str`,感觉有点眼生?是的,它既不是 `String` 动态字符串,也不是 `&str` 字符串切片,而是一个 `str`。它是一个动态类型,同时还是 `String``&str` 的底层数据类型。 由于 `str` 是动态类型,因此它的大小直到运行期才知道,下面的代码会因此报错:
```rust

Loading…
Cancel
Save