mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2025-01-31 14:40:12 +08:00
Update Ch10
This commit is contained in:
parent
ec43455db9
commit
0b1392adf9
@ -1209,7 +1209,7 @@ error: could not compile `lifetimes_demo` due to previous error; 2 warnings emit
|
||||
|
||||
问题在于,那个 `result` 会在 `longest` 函数结束处超出作用域而被清理掉。而咱们还在尝试返回到该函数中 `result` 的引用。咱们没有办法指定出会纠正这个悬空引用的生命周期参数,而 Rust 也不会容许咱们创建出悬空引用。在这种情况下,最佳修复将是返回有着所有权的数据类型,而非某个引用(注:这样看来引用是没有所有权的),从而随后由调用函数,the calling function,负责清理该值。
|
||||
|
||||
最后,生命周期语法,是有关将函数各个参数的生命周期,与函数返回值的生命周期连接起来的。一旦他们连接了起来,那么 Rust 就有了足够信息,来放行一些涉及内存安全的操作,以及蓝星那些会创建出悬空指针或其他危及内存安全的操作。
|
||||
最终,生命周期语法是关于把函数的不同参数与返回值的生命周期联系起来的。一旦他们联系起来,那么 Rust 就有了足够信息,来实现涉及内存安全的操作,并拦下会创建出悬空指针或危及内存安全的操作。
|
||||
|
||||
|
||||
### 结构体定义中的生命周期注解
|
||||
|
Loading…
Reference in New Issue
Block a user