revert: Roll back changes

This commit is contained in:
YangFong 2022-01-18 10:08:05 +08:00
parent 2f6d7f8607
commit f2eee75fa6

View File

@ -1,8 +1,8 @@
# 智能指针
**指针** *pointer*)是一个包含内存地址的变量的通用概念。这个地址引用,或 “指向”points at一些其数据。Rust 中最常见的指针是第 4 章介绍的 **引用***reference*)。引用以 `&` 符号为标志并借用了它们所指向的值。除了引用数据没有任何其特殊功能。它们也没有任何额外开销,所以应用得最多。
**指针** *pointer*)是一个包含内存地址的变量的通用概念。这个地址引用,或 “指向”points at一些其数据。Rust 中最常见的指针是第 4 章介绍的 **引用***reference*)。引用以 `&` 符号为标志并借用了它们所指向的值。除了引用数据没有任何其特殊功能。它们也没有任何额外开销,所以应用得最多。
另一方面,**智能指针***smart pointers*)是一类数据结构,它们的表现类似指针,但是也拥有额外的元数据和功能。智能指针的概念并非 Rust 独有:其起源于 C++,也存在于其语言中。Rust 标准库中不同的智能指针提供了多于引用的额外功能。本章将会探索的一个例子便是 **引用计数** *reference counting*)智能指针类型,其允许数据有多个所有者。引用计数智能指针记录总共有多少个所有者,并当没有任何所有者时负责清理数据。
另一方面,**智能指针***smart pointers*)是一类数据结构,它们的表现类似指针,但是也拥有额外的元数据和功能。智能指针的概念并非 Rust 独有:其起源于 C++,也存在于其语言中。Rust 标准库中不同的智能指针提供了多于引用的额外功能。本章将会探索的一个例子便是 **引用计数** *reference counting*)智能指针类型,其允许数据有多个所有者。引用计数智能指针记录总共有多少个所有者,并当没有任何所有者时负责清理数据。
在 Rust 中,普通引用和智能指针的一个额外的区别是引用是一类只借用数据的指针;相反,在大部分情况下,智能指针 **拥有** 它们指向的数据。