Skip to content

Commit 78677fc

Browse files
committed
ch02-00 数当てゲームの和訳をアップデート
1 parent 4b82704 commit 78677fc

File tree

1 file changed

+54
-43
lines changed

1 file changed

+54
-43
lines changed

src/ch02-00-guessing-game-tutorial.md

Lines changed: 54 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ fundamentals.
1616
実践的なプロジェクトに一緒に取り組むことで、Rustの世界に飛び込んでみましょう!
1717
この章ではRustの一般的な概念を、実際のプログラムでの使い方を示しながら紹介します。
1818
`let``match`、メソッド、関連関数、外部クレートの使用などについて学びます!
19-
それらの詳細については後続の章で取り上げますので、この章では基礎部分だけを練習しましょう
19+
それらの詳細については後続の章で取り上げますので、この章では基礎部分だけを練習します
2020

2121
<!--
2222
We’ll implement a classic beginner programming problem: a guessing game. Here’s
@@ -44,7 +44,8 @@ To set up a new project, go to the *projects* directory that you created in
4444
Chapter 1 and make a new project using Cargo, like so:
4545
-->
4646

47-
新しいプロジェクトを立ち上げるには、第1章で作成した*projects*ディレクトリに移動し、以下のようにCargoを使って新規プロジェクトを作成します。
47+
新しいプロジェクトを立ち上げましょう。
48+
第1章で作成した*projects*ディレクトリに移動し、以下のようにCargoを使って新規プロジェクトを作成します。
4849

4950
```console
5051
$ cargo new guessing_game
@@ -64,7 +65,7 @@ directory.
6465
Look at the generated *Cargo.toml* file:
6566
-->
6667

67-
生成された*Cargo.toml*ファイルを見てください
68+
生成された*Cargo.toml*ファイルを見てみましょう
6869

6970
<!--
7071
<span class="filename">Filename: Cargo.toml</span>
@@ -114,7 +115,7 @@ the next one.
114115
このゲーム(の開発)では各イテレーションを素早くテストしてから、次のイテレーションに移ります。
115116
`run`コマンドは、今回のようにプロジェクトのイテレーションを素早く回したいときに便利です。
116117

117-
> 訳注:ここでのイテレーションは、アジャイル開発など、一連の工程を短期間で繰り返す開発手法で用いられている用語です
118+
> 訳注:ここでのイテレーションは、アジャイル開発など、一連の工程を短期間で繰り返す開発手法で用いられている用語にあたります
118119
> イテレーションとは、開発工程の「一回のサイクル」のことです。
119120
>
120121
> この章では「実装」→「テスト」のサイクルを繰り返すことで、プログラムに少しずつ機能を追加していきます。
@@ -126,8 +127,6 @@ Reopen the *src/main.rs* file. You’ll be writing all the code in this file.
126127
*src/main.rs*ファイルを開き直しましょう。
127128
このファイルにすべてのコードを書いていきます。
128129

129-
<!-- 2022-03-14 和訳の更新はここまで終了 -->
130-
131130
<!--
132131
## Processing a Guess
133132
-->
@@ -141,7 +140,7 @@ allow the player to input a guess. Enter the code in Listing 2-1 into
141140
*src/main.rs*.
142141
-->
143142

144-
数当てプログラムの最初の部分は、ユーザに入力を求め、その入力を処理し、予期した形式になっていることを確認します
143+
数当てゲームプログラムの最初の部分は、ユーザに入力を求め、その入力を処理し、予期した形式になっていることを確認することになります
145144
手始めに、プレーヤーが予想を入力できるようにしましょう。
146145
リスト2-1のコードを*src/main.rs*に入力してください。
147146

@@ -160,11 +159,7 @@ allow the player to input a guess. Enter the code in Listing 2-1 into
160159
prints it</span>
161160
-->
162161

163-
<span class="caption">リスト2-1: ユーザに予想を入力してもらい、それを出力するコード</span>
164-
165-
> 注釈: The programming language Rust第1版の翻訳者によると、
166-
> ソースコードのコメント中以外に日本語文字があるとコンパイルに失敗することがあるそうなので、文字列の英語は、コメントに和訳を載せます。
167-
> また、重複する内容の場合には、最初の1回だけ掲載するようにします。
162+
<span class="caption">リスト2-1:ユーザに予想を入力してもらい、それを出力するコード</span>
168163

169164
<!--
170165
This code contains a lot of information, so let’s go over it line by line. To
@@ -173,9 +168,10 @@ obtain user input and then print the result as output, we need to bring the
173168
standard library, known as `std`:
174169
-->
175170

176-
このコードには、たくさんの情報が詰め込まれていますね。なので、行ごとに見ていきましょう。
177-
ユーザ入力を受け付け、結果を出力するためには、`io`(入/出力)ライブラリをスコープに導入する必要があります。
178-
`io`ライブラリは、標準ライブラリ(`std`として知られています)に存在します:
171+
このコードには多くの情報が詰め込まれていますね。
172+
行ごとに見ていきましょう。
173+
ユーザ入力を受け付け、結果を出力するためには、`io`(入/出力)ライブラリをスコープに入れる必要があります。
174+
`io`ライブラリは、標準ライブラリ(`std`として知られています)に含まれています。
179175

180176
```rust,ignore
181177
{{#rustdoc_include ../listings/ch02-guessing-game-tutorial/listing-02-01/src/main.rs:io}}
@@ -187,9 +183,8 @@ into the scope of every program. This set is called the *prelude*, and you can
187183
see everything in it [in the standard library documentation][prelude].
188184
-->
189185

190-
デフォルトでは、[*prelude*][prelude]<!-- ignored -->に存在するいくつかの型のみ使えます。
191-
もし、使用したい型がpreludeにない場合は、`use`文で明示的にその型をスコープに導入する必要があります。
192-
`std::io`ライブラリを使用することで、ユーザ入力を受け付ける能力などの実用的な機能の多くを使用することができます。
186+
Rustはデフォルトで、標準ライブラリに定義されているいくつかのアイテムを、すべてのプログラムのスコープに取り込みます。
187+
このセットは*prelude*(プレリュード)を呼ばれ、[標準ライブラリのドキュメント][prelude]でその中のすべてを見ることができます。
193188

194189
<!--
195190
If a type you want to use isn’t in the prelude, you have to bring that type
@@ -198,14 +193,17 @@ provides you with a number of useful features, including the ability to accept
198193
user input.
199194
-->
200195

196+
使いたい型がpreludeにない場合は、その型を`use`文で明示的にスコープに入れる必要があります。
197+
`std::io`ライブラリを`use`すると、ユーザ入力を受け付ける機能など、多くの便利な機能が利用できるようになります。
198+
201199
[prelude]: https://doc.rust-lang.org/std/prelude/index.html
202200

203201
<!--
204202
As you saw in Chapter 1, the `main` function is the entry point into the
205203
program:
206204
-->
207205

208-
第1章で見た通り`main`関数がプログラムへのエントリーポイント(`脚注`: スタート地点)になります:
206+
第1章で見たとおり`main`関数がプログラムへのエントリーポイント(訳注:スタート地点になります
209207

210208
```rust,ignore
211209
{{#rustdoc_include ../listings/ch02-guessing-game-tutorial/listing-02-01/src/main.rs:main}}
@@ -216,14 +214,15 @@ The `fn` syntax declares a new function, the parentheses, `()`, indicate there
216214
are no parameters, and the curly bracket, `{`, starts the body of the function.
217215
-->
218216

219-
`fn`構文が関数を新しく宣言し、かっこの`()`は引数がないことを示し、波括弧の`{`が関数本体のスタート地点になります
217+
`fn`構文は関数を新しく宣言し、かっこの`()`は引数がないことを示し、波括弧の`{`は関数の本体を開始します
220218

221219
<!--
222220
As you also learned in Chapter 1, `println!` is a macro that prints a string to
223221
the screen:
224222
-->
225223

226-
また、第1章で学んだように、`println!`は、文字列を画面に表示するマクロになります:
224+
また、第1章で学んだように、`println!`は画面に文字列を表示するマクロです.
225+
227226

228227
```rust,ignore
229228
{{#rustdoc_include ../listings/ch02-guessing-game-tutorial/listing-02-01/src/main.rs:print}}
@@ -234,7 +233,7 @@ This code is printing a prompt stating what the game is and requesting input
234233
from the user.
235234
-->
236235

237-
このコードは、このゲームが何かを出力し、ユーザに入力を求めています。
236+
このコードは、ゲームの内容などを示すプロンプトを表示し、ユーザに入力を求めています。
238237

239238
<!--
240239
### Storing Values with Variables
@@ -246,7 +245,8 @@ from the user.
246245
Next, we’ll create a *variable* to store the user input, like this:
247246
-->
248247

249-
次に、ユーザ入力を保持する場所を作りましょう。こんな感じに:
248+
次に、ユーザの入力を格納するための*変数*を作りましょう。
249+
こんな感じです。
250250

251251
```rust,ignore
252252
{{#rustdoc_include ../listings/ch02-guessing-game-tutorial/listing-02-01/src/main.rs:string}}
@@ -257,9 +257,10 @@ Now the program is getting interesting! There’s a lot going on in this little
257257
line. We use the `let` statement to create the variable. Here’s another example:
258258
-->
259259

260-
さあ、プログラムが面白くなってきましたね。このたった1行でいろんなことが起きています。
261-
これが`let`文であることに注目してください。これを使用して*変数*を生成しています。
262-
こちらは、別の例です:
260+
さあ、プログラムが面白くなってきましたね。
261+
この小さな行の中でいろいろなことが起きています。
262+
`let`文を使って変数を作っています。
263+
別の例も見てみましょう。
263264

264265
```rust,ignore
265266
let apples = 5;
@@ -273,13 +274,15 @@ variable name:
273274
-->
274275

275276
この行では`apples`という名前の新しい変数を作成し、`5`という値に束縛しています。
276-
Rustでは、変数は標準で不変(immutable)です
277-
この概念について詳しくは、第3章の[「変数と可変性」][variables-and-mutability]の節で議論します
278-
以下の例には、変数名の前に`mut`をつけて変数を可変にする方法が示されています:
277+
Rustでは、変数はデフォルトで不変(immutable)になります
278+
この概念については第3章の[「変数と可変性」][variables-and-mutability]の節で詳しく説明します
279+
変数を可変(mutable)にするには、変数名の前に`mut`をつけます。
279280

280281
```rust,ignore
281282
let apples = 5; // immutable
283+
// 不変
282284
let mut bananas = 5; // mutable
285+
// 可変
283286
```
284287

285288
<!--
@@ -288,8 +291,8 @@ let mut bananas = 5; // mutable
288291
> detail in [Chapter 3][comments].
289292
-->
290293

291-
> 注釈: `//`という記法は、行末まで続くコメントを記述します
292-
> コンパイラは、コメントを一切無視し、これについても第3章で詳しく議論します
294+
> 注:`//`構文は行末まで続くコメントを開始し、Rustはコメント内のすべて無視します
295+
> コメントについては[第3章][comments]で詳しく説明します
293296
294297
<!--
295298
Returning to the guessing game program, you now know that `let mut guess` will
@@ -301,11 +304,12 @@ the value that `guess` is bound to, which is the result of calling
301304
library that is a growable, UTF-8 encoded bit of text.
302305
-->
303306

304-
数当てゲームのプログラムに戻りましょう。さあ、`let mut guess``guess`という名前の可変変数を導入するとわかりましたね。
305-
イコール記号(`=`)の反対側には、変数`guess`が束縛される値があります。この値は、
306-
`String::new`関数の呼び出し結果であり、この関数は、`String`型のオブジェクトを返します。
307-
[`String`][string]<!-- ignore -->型は、標準ライブラリによって提供される文字列型で、
308-
サイズ可変、UTF-8エンコードされたテキスト破片になります。
307+
数当てゲームのプログラムに戻りましょう。
308+
ここまでの話で`let mut guess``guess`という名前の可変変数を導入することがわかったと思います。
309+
等号記号(`=`)はRustに、いまこの変数を何かに束縛したいことを伝えます。
310+
等号記号の右側には`guess`が束縛される値があります。
311+
これは`String::new`関数を呼び出すことで得られた値で、この関数は`String`型の新しいインスタンスを返します。
312+
[`String`][string]は標準ライブラリによって提供される文字列型で、サイズが拡張可能な、UTF-8でエンコードされたテキスト片になります。
309313

310314
[string]: https://doc.rust-lang.org/std/string/struct.String.html
311315

@@ -317,20 +321,27 @@ new, empty string. You’ll find a `new` function on many types, because it’s
317321
common name for a function that makes a new value of some kind.
318322
-->
319323

320-
`::new`行にある`::`という記法は、`new``String`型の*関連関数*であることを表しています
321-
関連関数とは、`String`型の特定のオブジェクトよりも型(この場合は`String`)に対して
322-
実装された関数のことであり、*静的(スタティック)メソッド*と呼ばれる言語もあります
323-
この`new`関数は、新しく空の文字列を生成します。`new`関数は、いろんな型に見られます
324-
なぜなら、何らかの新規値を生成する関数にとってありふれた名前だからです
324+
`::new`の行にある`::`構文は`new``String`型の関連関数であることを示しています
325+
*関連関数*とは、ある型(ここでは`String`)に対して実装される関数のことです。
326+
この`new`関数は新しい空の文字列を作成します
327+
`new`関数は多くの型に見られます
328+
なぜなら、何らかの新しい値を作成する関数によくある名前だからです
325329

326330
<!--
327331
In full, the `let mut guess = String::new();` line has created a mutable
328332
variable that is currently bound to a new, empty instance of a `String`. Whew!
329333
-->
330334

335+
つまり`let mut guess = String::new();`という行は可変変数を作成し、その変数は現時点では新しい空の`String`のインスタンスに束縛されているわけです。
336+
ふう!
337+
338+
<!-- ここまで翻訳済み -->
339+
340+
<!--
331341
### Receiving User Input
332-
まとめると、`let mut guess = String::new();`という行は、現在、新たに空の`String`オブジェクトに束縛されている
333-
可変変数を作っているわけです。ふう!
342+
-->
343+
344+
### ユーザの入力を受け取る
334345

335346
<!--
336347
Recall that we included the input/output functionality from the standard

0 commit comments

Comments
 (0)