diff --git a/book/contents/basic/ownership/borrowing.md b/book/contents/basic/ownership/borrowing.md index 36c7f424..d6ef3e32 100644 --- a/book/contents/basic/ownership/borrowing.md +++ b/book/contents/basic/ownership/borrowing.md @@ -225,9 +225,9 @@ fn main() { ### 悬垂引用(Dangling References) -所谓悬垂指针是其指向的内存可能已经被分配给其它持有者。相比之下,在 Rust 中编译器确保引用永远也不会变成悬垂状态:当你拥有一些数据的引用,编译器确保数据不会在其引用之前离开作用域。 +悬垂引用也叫做悬垂指针,指的是指针指向某个值后,这个值被释放掉了,而指针仍然存在,其指向的内存可能已经被分配给其它持有者。在 Rust 中编译器可以确保引用永远也不会变成悬垂状态:当你拥有一些数据的引用,编译器可以确保数据不会在其引用之前被释放,要想释放数据,必须先停止其引用的使用。 -让我们尝试创建一个悬垂引用,Rust会抛出一个编译时错误: +让我们尝试测试一个悬垂引用的例子,Rust会抛出一个编译时错误: ```rust fn main() { @@ -258,7 +258,7 @@ help: consider using the `'static` lifetime ``` -错误信息引用了一个我们还未介绍的功能:生命周期(lifetimes)。[该章](../../advance/lifetime.md)会详细介绍生命周期。不过,如果你不理会生命周期部分,错误信息中确实包含了为什么这段代码有问题的关键信息: +错误信息引用了一个我们还未介绍的功能:生命周期(lifetimes)。[该章](../../advance/lifetime.md)会详细介绍生命周期。不过,即使你不理解生命周期,也可以通过错误信息知道这段代码错误的关键信息: ```text this function's return type contains a borrowed value, but there is no value for it to be borrowed from.