@@ -105,10 +105,12 @@ fn foo() {
105
105
ベクタは [ ジェネリクス型] [ generics ] ` Vec<T> ` を持ちますので、この例における ` v ` は ` Vec<i32> ` 型になるでしょう。
106
106
ジェネリクスについては、この章の後の方で詳しく説明します。
107
107
108
- [ arrays ] : primitive-types.html#arrays
108
+ [ arrays ] : primitive-types.html#配列
109
109
[ vectors ] : vectors.html
110
- [ heap ] : the-stack-and-the-heap.html
111
- [ stack ] : the-stack-and-the-heap.html#the-stack
110
+ <!-- 訳注:原文では[heap]のリンク先が単に the-stack-and-the-heap.html となっていますが、 -->
111
+ <!-- [stack]に合わせて、#ヒープ を追加しました -->
112
+ [ heap ] : the-stack-and-the-heap.html#ヒープ
113
+ [ stack ] : the-stack-and-the-heap.html#スタック
112
114
[ bindings ] : variable-bindings.html
113
115
[ generics ] : generics.html
114
116
@@ -193,6 +195,9 @@ let x = 10;
193
195
Rustは [ スタック] [ sh ] 上に整数 [ i32] のためのメモリを割り当て、そこに、10という値を表すビットパターンをコピーします。
194
196
そして後から参照できるよう、変数名xをこのメモリ領域に束縛します。
195
197
198
+ <!-- 訳注:原文ではi32へのリンクが抜けているので、ここに追加しました -->
199
+ [ i32 ] : primitive-types.html#数値型
200
+
196
201
<!-- Now consider the following code fragment: -->
197
202
今度は、こんなコード片について考えてみましょう。
198
203
@@ -232,8 +237,8 @@ let mut v2 = v;
232
237
<!-- `v` and `v2` at the same time. -->
233
238
` v ` を ` v2 ` にムーブするときRustが実際に行うのは、ビット単位のコピーを使って、ベクタオブジェクト ` v ` が示すスタック領域の情報を、 ` v2 ` が示すスタック領域へコピーすることです。
234
239
この浅いコピーでは、実際のデータを格納しているヒープ領域はコピーしません。
235
- これはベクタに格納されたデータとして、ヒープ上の同一のメモリ領域を指すポインタが、2つできてしまうことを意味します 。
236
- もし誰かが ` v ` と ` v2 ` に同時にアクセスしたら ?
240
+ これは、ベクタの内容として、同一のヒープメモリ領域を指すポインタが2つあることを意味します 。
241
+ もし誰かが ` v ` と ` v2 ` に同時にアクセスできるとしたら ?
237
242
これはデータ競合を持ち込むことになり、Rustの安全性保証に違反するでしょう。
238
243
239
244
<!-- For example if we truncated the vector to just two elements through `v2`: -->
0 commit comments