From 5b26f827ddda35632a93ac1b08cc481fbf3edcc3 Mon Sep 17 00:00:00 2001 From: sunface Date: Fri, 25 Feb 2022 17:14:36 +0800 Subject: [PATCH] add a example to ownership.md --- contents/basic/ownership/ownership.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/contents/basic/ownership/ownership.md b/contents/basic/ownership/ownership.md index b13c5215..e82679d5 100644 --- a/contents/basic/ownership/ownership.md +++ b/contents/basic/ownership/ownership.md @@ -248,14 +248,15 @@ println!("x = {}, y = {}", x, y); Rust 有一个叫做 `Copy` 的特征,可以用在类似整型这样在栈中存储的类型。如果一个类型拥有 `Copy` 特征,一个旧的变量在被赋值给其他变量后仍然可用。 -那么什么类型是可 `Copy` 的呢?可以查看给定类型的文档来确认,不过作为一个通用的规则:**保存在栈上的数据类型可以 `Copy`,任何基本类型的组合可以 `Copy` ,不需要分配内存或某种形式资源的类型是 `Copy` 的**。如下是一些 `Copy` 的类型: +那么什么类型是可 `Copy` 的呢?可以查看给定类型的文档来确认,不过作为一个通用的规则:**任何基本类型的组合可以 `Copy` ,不需要分配内存或某种形式资源的类型是可以 `Copy` 的**。如下是一些 `Copy` 的类型: * 所有整数类型,比如 `u32`。 * 布尔类型,`bool`,它的值是 `true` 和 `false`。 * 所有浮点数类型,比如 `f64`。 * 字符类型,`char`。 * 元组,当且仅当其包含的类型也都是 `Copy` 的时候。比如,`(i32, i32)` 是 `Copy` 的,但 `(i32, String)` 就不是。 - +* 引用类型,例如[转移所有权](#转移所有权)中的最后一个例子 + ## 函数传值与返回 将值传递给函数,一样会发生 `移动` 或者 `复制`,就跟 `let` 语句一样,下面的代码展示了所有权、作用域的规则: ```rust