File tree 1 file changed +5
-5
lines changed
1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change @@ -48,7 +48,7 @@ fn as_str(data: &u32) -> &str {
48
48
let s = format!("{}", data);
49
49
50
50
// しまった! この関数内でしか存在しないオブジェクトへの
51
- // リファレンスを返してしまった !
51
+ // 参照を返してしまった !
52
52
// ダングリングポインタだ! メモリ解放後の参照だ! うわーー!
53
53
// (このコードは Rust ではコンパイルエラーになります)
54
54
&s
@@ -86,14 +86,14 @@ because ensuring pointers are always valid is much more complicated than this.
86
86
For instance in this code,
87
87
-->
88
88
89
- もちろん、リファレンスが参照先のスコープから逃げ出していないことを検証することよりも
89
+ もちろん、参照が参照先のスコープから逃げ出していないことを検証することよりも
90
90
所有権に関する Rust の話はもっともっと複雑です。
91
- ポインタがつねに有効であることを証明するのは 、もっともっと複雑だからです。
91
+ ポインタが常に有効であることを証明するのは 、もっともっと複雑だからです。
92
92
例えばこのコードを見てみましょう。
93
93
94
94
``` rust,ignore
95
95
let mut data = vec![1, 2, 3];
96
- // 内部データのリファレンスを取る
96
+ // 内部データの参照を取る
97
97
let x = &data[0];
98
98
99
99
// しまった! `push` によって `data` の格納先が再割り当てされてしまった。
@@ -114,4 +114,4 @@ referent and its owners.
114
114
単純なスコープ解析では、このバグは防げません。
115
115
` data ` のライフタイムは十分に長いからです。
116
116
問題は、その参照を保持している間に、参照先が* 変わって* しまったことです。
117
- Rust でリファレンスを取ると 、参照先とその所有者がフリーズされるのは、こういう理由なのです。
117
+ Rust で参照を取ると 、参照先とその所有者がフリーズされるのは、こういう理由なのです。
You can’t perform that action at this time.
0 commit comments