|
|
|
@ -260,11 +260,11 @@ Rust 有一个叫做 `Copy` 的特征,可以用在类似整型这样在栈中
|
|
|
|
|
|
|
|
|
|
那么什么类型是可 `Copy` 的呢?可以查看给定类型的文档来确认,不过作为一个通用的规则: **任何基本类型的组合可以 `Copy` ,不需要分配内存或某种形式资源的类型是可以 `Copy` 的**。如下是一些 `Copy` 的类型:
|
|
|
|
|
|
|
|
|
|
- 所有整数类型,比如 `u32`。
|
|
|
|
|
- 布尔类型,`bool`,它的值是 `true` 和 `false`。
|
|
|
|
|
- 所有浮点数类型,比如 `f64`。
|
|
|
|
|
- 字符类型,`char`。
|
|
|
|
|
- 元组,当且仅当其包含的类型也都是 `Copy` 的时候。比如,`(i32, i32)` 是 `Copy` 的,但 `(i32, String)` 就不是。
|
|
|
|
|
- 所有整数类型,比如 `u32`
|
|
|
|
|
- 布尔类型,`bool`,它的值是 `true` 和 `false`
|
|
|
|
|
- 所有浮点数类型,比如 `f64`
|
|
|
|
|
- 字符类型,`char`
|
|
|
|
|
- 元组,当且仅当其包含的类型也都是 `Copy` 的时候。比如,`(i32, i32)` 是 `Copy` 的,但 `(i32, String)` 就不是
|
|
|
|
|
- 不可变引用 `&T` ,例如[转移所有权](#转移所有权)中的最后一个例子,**但是注意: 可变引用 `&mut T` 是不可以 Copy的**
|
|
|
|
|
|
|
|
|
|
## 函数传值与返回
|
|
|
|
|