Skip to content

Commit 6f1f69d

Browse files
committed
Update ownership
1 parent 17f203d commit 6f1f69d

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

1.6/ja/book/ownership.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<!-- chapter: -->
99
このガイドはRustの所有権システムの3つの解説の1つです。
1010
これはRustの最も独特で注目されている機能です。そして、Rust開発者はそれについて高度に精通しておくべきです。
11-
所有権はどのようにRustがその最大の目標、メモリ安全性を得るのかということです
11+
所有権こそはRustがその最大の目標、メモリ安全性を得るための方法です
1212
そこにはいくつかの別個の概念があり、各概念が独自の章を持ちます。
1313

1414
<!-- * ownership, which you’re reading now -->
@@ -147,7 +147,7 @@ println!("v[0] is: {}", v[0]);
147147
<!-- we say that we’ve ‘moved’ the thing we refer to. You don’t need some sort of -->
148148
<!-- special annotation here, it’s the default thing that Rust does. -->
149149
「use of moved value」という同じエラーです。
150-
所有権を何か別のものに転送するとき、参照するものを「移転する」と言います。
150+
所有権を何か別のものに転送するとき、参照するものを「ムーブした」と言います。
151151
ここでは特別な種類の注釈を必要としません。
152152
それはRustの行うデフォルトの動作です。
153153

@@ -156,7 +156,7 @@ println!("v[0] is: {}", v[0]);
156156

157157
<!-- The reason that we cannot use a binding after we’ve moved it is subtle, but -->
158158
<!-- important. When we write code like this: -->
159-
束縛を移転した後ではそれを使うことができないということの理由は微妙ですが重要です
159+
束縛をムーブした後ではそれを使うことができないということの理由は微妙ですが重要です
160160
このようなコードを書いたとします。
161161

162162
```rust
@@ -174,10 +174,10 @@ let v2 = v;
174174
<!-- after we’ve done the move. -->
175175
最初の行はベクタオブジェクト`v`とそれの含むデータのためのメモリを割り当てます。
176176
ベクタオブジェクトは[スタック][sh]に保存され、[ヒープ][sh]に保存された内容(`[1, 2, 3]`)へのポインタを含みます。
177-
`v``v2`に移転するとき、それは`v2`のためにそのポインタのコピーを作ります。
177+
`v``v2`にムーブするとき、それは`v2`のためにそのポインタのコピーを作ります。
178178
それは、ヒープ上のベクタの内容へのポインタが2つあることを意味します。
179179
それはデータ競合を持ち込むことでRustの安全性保証に違反するでしょう。
180-
そのため、Rustは移転を終えた後の`v`の使用を禁止するのです。
180+
そのため、Rustはムーブを終えた後の`v`の使用を禁止するのです。
181181

182182
[sh]: the-stack-and-the-heap.html
183183

@@ -213,16 +213,16 @@ println!("v is: {}", v);
213213
<!-- But, unlike a move, we can still use `v` afterward. This is because an `i32` -->
214214
<!-- has no pointers to data somewhere else, copying it is a full copy. -->
215215
この場合、`v``i32`で、それは`Copy`トレイトを実装します。
216-
これはちょうど移転と同じように`v``v2`に割り当てるとき、データのコピーが作られるということを意味します。
217-
しかし、移転と違って後でまだ`v`を使うことができます。
216+
これはちょうどムーブと同じように`v``v2`に割り当てるとき、データのコピーが作られるということを意味します。
217+
しかし、ムーブと違って後でまだ`v`を使うことができます。
218218
これは`i32`がどこか別の場所へのポインタを持たず、コピーが完全コピーだからです。
219219

220220
<!-- All primitive types implement the `Copy` trait and their ownership is -->
221221
<!-- therefore not moved like one would assume, following the ´ownership rules´. -->
222222
<!-- To give an example, the two following snippets of code only compile because the -->
223223
<!-- `i32` and `bool` types implement the `Copy` trait. -->
224-
全てのプリミティブ型は`Copy`トレイトを実装しているので、推測どおりそれらの所有権は「所有権ルール」に従っては移転しません
225-
例を与えるために、2つのコードスニペットを単にコンパイルしましょう。なぜなら、`i32`型と`bool`型は`Copy`トレイトを実装するからです。
224+
全てのプリミティブ型は`Copy`トレイトを実装しているので、推測どおりそれらの所有権は「所有権ルール」に従ってはムーブしません
225+
例として、次の2つのコードスニペットはコンパイルが通ります。なぜなら、`i32`型と`bool`型は`Copy`トレイトを実装するからです。
226226

227227
```rust
228228
fn main() {
@@ -252,7 +252,7 @@ fn change_truth(x: bool) -> bool {
252252

253253
<!-- If we had used types that do not implement the `Copy` trait, -->
254254
<!-- we would have gotten a compile error because we tried to use a moved value. -->
255-
もし`Copy`トレイトを実装していない型を使っていたならば、移転した値を使おうとしたため、コンパイルエラーが出ていたでしょう。
255+
もし`Copy`トレイトを実装していない型を使っていたならば、ムーブした値を使おうとしたため、コンパイルエラーが出ていたでしょう。
256256

257257
```text
258258
error: use of moved value: `a`

0 commit comments

Comments
 (0)