From a89af20d261cd48fce7daa5003f20889a56f6e2b Mon Sep 17 00:00:00 2001 From: rikkaka <39625849+rikkaka@users.noreply.github.com> Date: Mon, 24 Jul 2023 09:57:09 +0800 Subject: [PATCH 1/3] Update drop.md --- src/advance/smart-pointer/drop.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/advance/smart-pointer/drop.md b/src/advance/smart-pointer/drop.md index a80a9ac6..4fbd788f 100644 --- a/src/advance/smart-pointer/drop.md +++ b/src/advance/smart-pointer/drop.md @@ -158,6 +158,8 @@ Bingo,完美拿走了所有权,而且这种实现保证了后续的使用必 细心的同学可能已经注意到,这里直接调用了 `drop` 函数,并没有引入任何模块信息,原因是该函数在[`std::prelude`](https://course.rs/appendix/prelude.html)里。 +> 事实上,能被显式调用的drop(_x)函数只是个空函数,除了拿走目标值的所有权没有任何作用。而由于其持有目标值的所有权,在drop(_x)函数结束之际,编译器会执行_x真正的析构函数,从而完成释放资源的操作。 + ## Drop 使用场景 对于 Drop 而言,主要有两个功能: From 0a0153b9cd46d4e4b0a1616730345dfed5f8b771 Mon Sep 17 00:00:00 2001 From: rikkaka <39625849+rikkaka@users.noreply.github.com> Date: Mon, 24 Jul 2023 10:08:56 +0800 Subject: [PATCH 2/3] Update drop.md --- src/advance/smart-pointer/drop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/advance/smart-pointer/drop.md b/src/advance/smart-pointer/drop.md index 4fbd788f..1f238f50 100644 --- a/src/advance/smart-pointer/drop.md +++ b/src/advance/smart-pointer/drop.md @@ -158,7 +158,7 @@ Bingo,完美拿走了所有权,而且这种实现保证了后续的使用必 细心的同学可能已经注意到,这里直接调用了 `drop` 函数,并没有引入任何模块信息,原因是该函数在[`std::prelude`](https://course.rs/appendix/prelude.html)里。 -> 事实上,能被显式调用的drop(_x)函数只是个空函数,除了拿走目标值的所有权没有任何作用。而由于其持有目标值的所有权,在drop(_x)函数结束之际,编译器会执行_x真正的析构函数,从而完成释放资源的操作。 +> 事实上,能被显式调用的drop(_x)函数只是个空函数,在拿走目标值的所有权后没有任何操作。而由于其持有目标值的所有权,在drop(_x)函数结束之际,编译器会执行_x真正的析构函数,从而完成释放资源的操作。换句话说,drop(_x)函数只是帮助目标值的所有者提前离开了作用域。 ## Drop 使用场景 From 83af2a67695389d47b1a58a399c5bed34151485f Mon Sep 17 00:00:00 2001 From: Sunface Date: Thu, 5 Sep 2024 12:28:32 +0800 Subject: [PATCH 3/3] Update src/advance/smart-pointer/drop.md --- src/advance/smart-pointer/drop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/advance/smart-pointer/drop.md b/src/advance/smart-pointer/drop.md index 1f238f50..ec386494 100644 --- a/src/advance/smart-pointer/drop.md +++ b/src/advance/smart-pointer/drop.md @@ -158,7 +158,7 @@ Bingo,完美拿走了所有权,而且这种实现保证了后续的使用必 细心的同学可能已经注意到,这里直接调用了 `drop` 函数,并没有引入任何模块信息,原因是该函数在[`std::prelude`](https://course.rs/appendix/prelude.html)里。 -> 事实上,能被显式调用的drop(_x)函数只是个空函数,在拿走目标值的所有权后没有任何操作。而由于其持有目标值的所有权,在drop(_x)函数结束之际,编译器会执行_x真正的析构函数,从而完成释放资源的操作。换句话说,drop(_x)函数只是帮助目标值的所有者提前离开了作用域。 +> 事实上,能被显式调用的drop(_x)函数只是个空函数,在拿走目标值的所有权后没有任何操作。而由于其持有目标值的所有权,在drop(_x)函数结束之际,编译器会执行_x真正的析构函数,从而完成释放资源的操作。换句话说,drop(_x)函数只是帮助目标值的所有者提前离开了作用域。https://doc.rust-lang.org/std/mem/fn.drop.html ## Drop 使用场景