|
|
@ -158,7 +158,7 @@ Bingo,完美拿走了所有权,而且这种实现保证了后续的使用必
|
|
|
|
|
|
|
|
|
|
|
|
细心的同学可能已经注意到,这里直接调用了 `drop` 函数,并没有引入任何模块信息,原因是该函数在[`std::prelude`](https://course.rs/appendix/prelude.html)里。
|
|
|
|
细心的同学可能已经注意到,这里直接调用了 `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 使用场景
|
|
|
|
## Drop 使用场景
|
|
|
|
|
|
|
|
|
|
|
|