Merge pull request #8 from vincentsong/master

ch04-02 L191 refined the translation for dangling pointer
pull/9/head
KaiserY 8 years ago committed by GitHub
commit 28f8d0d1e6

@ -188,7 +188,7 @@ immutable
### 悬垂引用
在存在指针的语言中,容易错误地生成一个**悬垂指针***dangling pointer*一个引用某个内存位置的指针,这个内存可能已经因为被分配给别人,因为释放内存时指向内存的指针被保留了下来。相比之下,在 Rust 中编译器确保引用永远也不会变成悬垂状态:当我们拥有一些数据的引用,编译器确保数据不会在其引用之前离开作用域。
在存在指针的语言中,容易通过释放内存时保留指向它的指针而错误地生成一个**悬垂指针***dangling pointer*所谓悬垂指针是其指向的内存可能已经被分配给其它持有者,。相比之下,在 Rust 中编译器确保引用永远也不会变成悬垂状态:当我们拥有一些数据的引用,编译器确保数据不会在其引用之前离开作用域。
让我们尝试创建一个悬垂引用:

@ -61,7 +61,7 @@ for (i, &item) in bytes.iter().enumerate() {
s.len()
```
现在有了一个找到字符串中第一个单词结尾索引的方法了,不过这有一个问题。我们返回了单单一个`usize`,不过它只在`&String`的上下文中才是一个有意义的数字。换句话说,因为它是一个与`String`分离的值,无法保证将来它仍然有效。考虑一下列表 4-11 中使用了列表 4-10 `first_word`函数的程序:
现在有了一个找到字符串中第一个单词结尾索引的方法了,不过这有一个问题。我们返回了单单一个`usize`,不过它只在`&String`的上下文中才是一个有意义的数字。换句话说,因为它是一个与`String`分离的值,无法保证将来它仍然有效。考虑一下列表 4-11 中使用了列表 4-10 `first_word`函数的程序:
<span class="filename">Filename: src/main.rs</span>

Loading…
Cancel
Save