Skip to content

Commit

Permalink
Merge pull request #761 from Orefa/patch-2
Browse files Browse the repository at this point in the history
Update ch15-03-drop.md
  • Loading branch information
KaiserY authored Jan 22, 2024
2 parents c89f944 + f4040e0 commit 9099abd
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/ch15-03-drop.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@

错误信息表明不允许显式调用 `drop`。错误信息使用了术语 **析构函数**_destructor_),这是一个清理实例的函数的通用编程概念。**析构函数** 对应创建实例的 **构造函数**。Rust 中的 `drop` 函数就是这么一个析构函数。

Rust 不允许我们显式调用 `drop` 因为 Rust 仍然会在 `main` 的结尾对值自动调用 `drop`,这会导致一个 **double free** 错误,因为 Rust 会尝试清理相同的值两次。
Rust 不允许我们显式调用 `drop` 因为 Rust 仍然会在 `main` 的结尾对值自动调用 `drop`,这会导致一个 *double free* 错误,因为 Rust 会尝试清理相同的值两次。

因为不能禁用当值离开作用域时自动插入的 `drop`,并且不能显式调用 `drop`,如果我们需要强制提早清理值,可以使用 `std::mem::drop` 函数。

Expand Down

0 comments on commit 9099abd

Please sign in to comment.