Skip to content

Commit 1447db1

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

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

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

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ explore these ideas in more detail. In this chapter, you’ll practice the
1313
fundamentals.
1414
-->
1515

16-
実践的なプロジェクトに一緒に取り組むことで、Rustの世界に飛び込んでみましょう! 
16+
ハンズオン形式のプロジェクトに一緒に取り組むことで、Rustの世界に飛び込んでみましょう! 
1717
この章ではRustの一般的な概念を、実際のプログラムでの使い方を示しながら紹介します。
18-
`let``match`、メソッド、関連関数、外部クレートの使用などについて学びます 
19-
これらについての詳細は後続の章で取り上げますので、この章では基礎部分だけを練習します
18+
`let``match`、メソッド、関連関数、外部クレートの使いかたなどについて学びます 
19+
これらについての詳細は後続の章で取り上げますので、この章では基本的なところを練習します
2020

2121
<!--
2222
We’ll implement a classic beginner programming problem: a guessing game. Here’s
@@ -118,7 +118,7 @@ the next one.
118118
> 訳注:ここでのイテレーションは、アジャイルな開発手法で用いられている用語にあたります。
119119
>
120120
> イテレーションとは開発工程の「一回のサイクル」のことで、サイクルには、設計、実装、テスト、改善(リリース後の振り返り)が含まれます。
121-
> アジャイル開発では、イテレーションを数週間の短いスパンで一通り回し、それを繰り返しながら開発を進めていきます
121+
> アジャイル開発ではイテレーションを数週間の短いスパンで一通り回し、それを繰り返すことで開発を進めていきます
122122
>
123123
> この章では「実装」→「テスト」のごく短いサイクルを繰り返すことで、プログラムに少しずつ機能を追加していきます。
124124
@@ -142,7 +142,7 @@ allow the player to input a guess. Enter the code in Listing 2-1 into
142142
*src/main.rs*.
143143
-->
144144

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

@@ -172,8 +172,8 @@ standard library, known as `std`:
172172

173173
このコードには多くの情報が詰め込まれています。
174174
行ごとに見ていきましょう。
175-
ユーザ入力を受け付け、結果を出力するためには`io`入/出力)ライブラリをスコープに入れる必要があります。
176-
`io`ライブラリは、標準ライブラリ(`std`として知られています)に含まれています
175+
ユーザ入力を受け付け、結果を出力するためには`io`入出力)ライブラリをスコープに入れる必要があります。
176+
`io`ライブラリは、`std`と呼ばれる標準ライブラリに含まれています
177177

178178
```rust,ignore
179179
{{#rustdoc_include ../listings/ch02-guessing-game-tutorial/listing-02-01/src/main.rs:io}}
@@ -185,8 +185,8 @@ into the scope of every program. This set is called the *prelude*, and you can
185185
see everything in it [in the standard library documentation][prelude].
186186
-->
187187

188-
Rustはデフォルトで、標準ライブラリに定義されているいくつかのアイテム(をセットにしたもの)を、すべてのプログラムのスコープに取り込みます。
189-
このセットは*prelude*(プレリュード)を呼ばれ[標準ライブラリのドキュメント][prelude]でその中のすべてを見ることができます。
188+
Rustはデフォルトで、標準ライブラリで定義されているアイテムの中のいくつかを、すべてのプログラムのスコープに取り込みます。
189+
このセットは*prelude*(プレリュード)と呼ばれ[標準ライブラリのドキュメント][prelude]でその中のすべてを見ることができます。
190190

191191
<!--
192192
If a type you want to use isn’t in the prelude, you have to bring that type
@@ -196,7 +196,7 @@ user input.
196196
-->
197197

198198
使いたい型がpreludeにない場合は、その型を`use`文で明示的にスコープに入れる必要があります。
199-
`std::io`ライブラリを`use`すると、ユーザ入力を受け付ける機能など多くの便利な機能が利用できるようになります。
199+
`std::io`ライブラリを`use`すると、ユーザ入力を受け付ける機能など(入出力に関する)多くの便利な機能が利用できるようになります。
200200

201201
[prelude]: https://doc.rust-lang.org/std/prelude/index.html
202202

@@ -383,7 +383,7 @@ string’s content.
383383

384384
次の`.read_line(&mut guess)`行は、標準入力ハンドルの[`read_line`][read_line]メソッドを呼び出し、ユーザからの入力を得ています。
385385
また、`read_line`の引数として`&mut guess`を渡し、ユーザ入力をどの文字列に格納するかを指示しています。
386-
`read_line`メソッドの仕事は、ユーザが標準入力に入力したものを文字列に(その内容を上書きすることなく)追加することですので、文字列を引数として渡しているわけです。
386+
`read_line`メソッドの仕事は、ユーザが標準入力に入力したものを文字列に(いまの内容を上書きせずに)追加することですので、文字列を引数として渡しているわけです。
387387
引数の文字列は、その内容をメソッドが変更できるように、可変である必要があります。
388388

389389
[read_line]: https://doc.rust-lang.org/std/io/struct.Stdin.html#method.read_line
@@ -419,8 +419,8 @@ line of text, it’s still part of a single logical line of code. The next part
419419
is this method:
420420
-->
421421

422-
まだ、このコードの行は終わってませんよ
423-
これから説明するのはテキスト上は3行目になりますが、まだ一つの論理的な行の一部分です
422+
まだ、このコードの行は終わってません
423+
これから説明するのはテキスト上は3行目になりますが、まだ一つの論理的な行の一部分に過ぎません
424424
次の部分はこのメソッドです。
425425

426426
```rust,ignore
@@ -461,7 +461,7 @@ different code based on which variant an enum value is when the conditional is
461461
evaluated.
462462
-->
463463

464-
前述したように、`read_line`メソッドは、渡された文字列にユーザが入力したものを入れます
464+
前述したように、`read_line`メソッドは渡された文字列にユーザが入力したものを入れます
465465
しかし、同時に値(この場合は[`io::Result`][ioresult])も返します。
466466
Rustの標準ライブラリには`Result`という名前の型がいくつかあります。
467467
汎用の[`Result`][result]と、`io::Result`といったサブモジュール用の特殊な型などです。
@@ -519,7 +519,7 @@ can use it. In this case, that value is the number of bytes in the user’s inpu
519519
If you don’t call `expect`, the program will compile, but you’ll get a warning:
520520
-->
521521

522-
もし`expect`メソッドを呼び出さなかったら、コンパイルできるものの、警告が出るでしょう
522+
もし`expect`メソッドを呼び出さなかったら、コンパイルはできるものの警告が出るでしょう
523523

524524
```console
525525
{{#include ../listings/ch02-guessing-game-tutorial/no-listing-02-without-expect/output.txt}}
@@ -540,7 +540,7 @@ use `expect`. You’ll learn about recovering from errors in [Chapter
540540
-->
541541

542542
警告を抑制する正しい方法は実際にエラー処理を書くことです。
543-
しかし、今回は問題が起きたときにこのプログラムをクラッシュさせたいだけなので`expect`が使えるわけです。
543+
しかし、現時点では問題が起きたときにこのプログラムをクラッシュさせたいだけなので`expect`が使えるわけです。
544544
エラーからの回復については第9章で学びます。
545545

546546
<!--
@@ -704,16 +704,16 @@ release that will still compile with the code in this chapter. Any version
704704
examples use.
705705
-->
706706

707-
*Cargo.toml*ファイルでは、ヘッダに続くものは全て、他のセクションが始まるまで続くセクションの一部になります。
707+
*Cargo.toml*ファイルでは、ヘッダに続くものはすべて、他のセクションが始まるまで続くセクションの一部になります。
708708
(訳注:Cargo.tomlファイル内には複数のセクションがあり、各セクションは`[ ]`で囲まれたヘッダ行から始まります)
709709

710710
`[dependecies]`はプロジェクトが依存する外部クレートと必要とするバージョンをCargoに伝えます。
711711
今回は`rand`クレートを`0.8.3`というセマンティックバージョン指定子で指定します。
712712
Cargoは[セマンティックバージョニング][semver]*SemVer*と呼ばれることもあります)を理解しており、これはバージョンナンバーを記述するための標準です。
713713
`0.8.3`という数字は実際には`^0.8.3`の省略記法で、`0.8.3`以上`0.9.0`未満の任意のバージョンを意味します。
714714
Cargoはこれらのバージョンを、バージョン`0.8.3`と互換性のある公開APIを持つものとみなします。
715-
この仕様により、この章のコードがコンパイルできるような最新のパッチリリースを取得できるようになります
716-
0.9.0以降のバージョンは、以下の例で使用しているものと同じAPIであることを保証しません
715+
この仕様により、この章のコードが引き続きコンパイルできるようにしつつ、最新のパッチリリースを取得できるようになります
716+
0.9.0以降のバージョンは、以下の例で使用しているものと同じAPIを持つことを保証しません
717717

718718
[semver]: http://semver.org
719719

@@ -847,8 +847,8 @@ directory.
847847
Cargoはあなたや他の人があなたのコードをビルドするたびに、同じ生成物をリビルドできるようにするしくみを備えています。
848848
Cargoは何も指示されない限り、指定したバージョンの依存のみを使用します。
849849
たとえば来週`rand`クレートのバージョン0.8.4が出て、そのバージョンには重要なバグ修正が含まれていますが、同時にあなたのコードを破壊するリグレッションも含まれているとします。
850-
これに対応するため、Rustは`cargo build`を最初に実行したとき*Cargo.lock*ファイルを作成します。
851-
なので、いま*guessing_game*ディレクトリにそれがあります。
850+
これに対応するため、Rustは`cargo build`を最初に実行したときに*Cargo.lock*ファイルを作成します。
851+
(いまの*guessing_game*ディレクトリにもあるはずです)
852852

853853
<!--
854854
When you build a project for the first time, Cargo figures out all the
@@ -862,7 +862,7 @@ file.
862862
-->
863863

864864
プロジェクトを初めてビルドするとき、Cargoは条件に合うすべての依存関係のバージョンを計算し*Cargo.lock*ファイルに書き込みます。
865-
次にプロジェクトをビルドする際は、Cargoは*Cargo.lock*ファイルが存在することを確認し、バージョンを把握するすべての作業を再度行う代わりに、そこに指定されているバージョンを使います
865+
次にプロジェクトをビルドすると、Cargoは*Cargo.lock*ファイルが存在することを確認し、バージョンを把握するすべての作業を再び行う代わりに、そこで指定されているバージョンを使います
866866
これにより再現性のあるビルドを自動的に行えます。
867867
言い換えれば、*Cargo.lock*ファイルのおかげで、あなたが明示的にアップグレードするまで、プロジェクトは`0.8.3`を使い続けます。
868868

@@ -906,7 +906,7 @@ this instead:
906906

907907
Cargoは`0.9.0`リリースを無視します。
908908
またそのとき、*Cargo.lock*ファイルが変更され、`rand`クレートの現在使用中のバージョンが`0.8.4`になったことにも気づくでしょう。
909-
そうではなく、`rand`のバージョン`0.9.0`か、`0.9.x`系のどれかを使用するには、*Cargo.toml*ファイルを以下のように変更する必要があるでしょう
909+
そうではなく、`rand`のバージョン`0.9.0`か、`0.9.x`系のどれかを使用するには、*Cargo.toml*ファイルを以下のように変更する必要があります
910910

911911
```toml
912912
[dependencies]
@@ -975,7 +975,7 @@ use those methods. Chapter 10 will cover traits in detail.
975975
-->
976976

977977
まず`use rand::Ring`という行を追加します。
978-
`Rng`トレイトは乱数生成器が実装するメソッドを定義しており、それらのメソッドを使用するには、このトレイトがスコープ内になければなりません。
978+
`Rng`トレイトは乱数生成器が実装すべきメソッドを定義しており、それらのメソッドを使用するには、このトレイトがスコープ内になければなりません。
979979
トレイトについて詳しくは第10章で解説します。
980980

981981
<!--
@@ -993,7 +993,7 @@ upper bound, so we need to specify `1..101` to request a number between 1 and
993993
-->
994994

995995
次に、途中に2行を追加しています。
996-
最初の行では`rand::thread_rng`関数を呼び出して、これから使う特定の乱数生成器を取得しています
996+
最初の行では`rand::thread_rng`関数を呼び出して、これから使う、ある特定の乱数生成器を取得しています
997997
なお、この乱数生成器は現在のスレッドに固有で、オペレーティングシステムからシード値を得ています。
998998
そして、この乱数生成器の`gen_range`メソッドを呼び出しています。
999999
このメソッドは`use rand::Rng`文でスコープに導入した`Rng`トレイトで定義されています。
@@ -1025,13 +1025,13 @@ as it starts!
10251025

10261026
コードに追加した2行目は秘密の数字を表示します。
10271027
これはプログラムを開発している間のテストに便利ですが、最終版からは削除する予定です。
1028-
プログラムが始まってすぐに答え表示されたらゲームになりませんからね
1028+
プログラムが始まってすぐに答えが表示されたらゲームになりませんからね
10291029

10301030
<!--
10311031
Try running the program a few times:
10321032
-->
10331033

1034-
試しに何回かプログラムを走らせてみてください
1034+
試しにプログラムを何回か走らせてみてください
10351035

10361036
```console
10371037
$ cargo run
@@ -1169,7 +1169,7 @@ expression ends because it has no need to look at the last arm in this scenario.
11691169
`match`式は`Ordering::Greater`の値を取得し、各アームのパターンを吟味し始めます。
11701170
まず最初のアームのパターンである`Ordering::Less`を見て、`Ordering::Greater`の値と`Ordering::Less`がマッチしないことがわかります。
11711171
そのため、このアームのコードは無視して、次のアームに移ります。
1172-
次のアームのパターンは`Ordering::Greater`で、これは*見事に*`Ordering::Greater`とマッチします&nbsp;
1172+
次のアームのパターンは`Ordering::Greater`で、これは`Ordering::Greater`*マッチ*します&nbsp;
11731173
このアームに関連するコードが実行され、画面に`Too big!`と表示されます。
11741174
このシナリオでは最後のアームと照合する必要がないため`match`式(の評価)は終了します。
11751175

@@ -1228,7 +1228,7 @@ by adding this line to the `main` function body:
12281228
The line is:
12291229
-->
12301230

1231-
その行とは、
1231+
その行とはこれのことです。
12321232

12331233
```rust,ignore
12341234
let guess: u32 = guess.trim().parse().expect("Please type a number!");
@@ -1355,7 +1355,7 @@ We have most of the game working now, but the user can make only one guess.
13551355
Let’s change that by adding a loop!
13561356
-->
13571357

1358-
現在、ゲームの大部分は動作していますが、まだユーザは1回しか予想できません。
1358+
現在、ゲームの大半は動作していますが、まだユーザは1回しか予想できません。
13591359
ループを追加して、その部分を変更しましょう!
13601360

13611361
<!--
@@ -1431,7 +1431,7 @@ quit
14311431
thread 'main' panicked at 'Please type a number!: ParseIntError { kind: InvalidDigit }', src/main.rs:28:47
14321432
(スレッド'main'は'数字を入力してください!:ParseIntError { kind: InvalidDigit }', src/libcore/result.rs:785でパニックしました)
14331433
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
1434-
(注意:`RUST_BACKTRACE=1`で走らせるとバックトレースを見れます)
1434+
(:`RUST_BACKTRACE=1`で走らせるとバックトレースを見れます)
14351435
```
14361436

14371437
<!--
@@ -1636,7 +1636,7 @@ ownership, a feature that makes Rust different from other languages. Chapter 5
16361636
discusses structs and method syntax, and Chapter 6 explains how enums work.
16371637
-->
16381638

1639-
このプロジェクトでは実践的な手法を通して`let``match`、メソッド、関連関数、外部クレートの使用など、多くの新しいRustの概念に触れることができました
1639+
このプロジェクトではハンズオンを通して`let``match`、メソッド、関連関数、外部クレートの使いかたなど、多くの新しいRustの概念に触れました
16401640
以降の章では、これらの概念についてより詳しく学びます。
16411641
第3章では変数、データ型、関数など多くのプログラミング言語が持つ概念を取り上げ、Rustでの使い方を説明します。
16421642
第4章ではRustを他の言語とは異なるものに特徴づける、所有権について説明します。

0 commit comments

Comments
 (0)