17-关于引用的更多信息
关于引用的更多信息 — Easy Rust 中文译本
2 分钟阅读
译文 · 基于 Easy Rust
关于引用的更多信息
引用在Rust中非常重要。Rust使用引用来确保所有的内存访问是安全的。我们知道,我们使用&来创建一个引用。
| |
这样就会打印出Austria。
在代码中,country是一个String。然后我们创建了两个country的引用。它们的类型是&String,你说这是一个 “字符串的引用”。我们可以创建三个引用或者一百个对 country 的引用,这都没有问题。
但这是一个问题。
| |
return_str()函数创建了一个String,然后它创建了一个对String的引用。然后它试图返回引用。但是country这个String只活在函数里面,然后它就死了。一旦一个变量消失了,计算机就会清理内存,并将其用于其他用途。所以在函数结束后,country_ref引用的是已经消失的内存,这是不对的。Rust防止我们在这里犯内存的错误。
这就是我们上面讲到的 “拥有"类型的重要部分。因为你拥有一个String,你可以把它传给别人。但是如果 &String 的 String 死了,那么 &String 就会死掉,所以你不能把它的 “所有权"传给别人。