From 551ce3e16710ae491a345ced7e9409c6773e9575 Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:06:34 +0900 Subject: [PATCH 01/12] Fix chapter 4 --- second-edition/src/ch04-01-what-is-ownership.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/second-edition/src/ch04-01-what-is-ownership.md b/second-edition/src/ch04-01-what-is-ownership.md index 6117ba3b9..677a594b8 100644 --- a/second-edition/src/ch04-01-what-is-ownership.md +++ b/second-edition/src/ch04-01-what-is-ownership.md @@ -815,7 +815,7 @@ fn main() { // i32はCopyなので、この後にxを使っても // 大丈夫 -} // ここでxがスコープを抜け、sも。だけど、sの値はムーブされてるので、何も特別なことはない。 +} // ここでxがスコープを抜けた後にsもスコープを抜ける。ただし、sの値はムーブされてるので、何も呼び出されない。 // fn takes_ownership(some_string: String) { // some_stringがスコープに入る。 From 3aa6442f3bf625e687ea465bae3fb458c166065c Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:07:49 +0900 Subject: [PATCH 02/12] Fix chapter 11. --- second-edition/src/ch11-03-test-organization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/second-edition/src/ch11-03-test-organization.md b/second-edition/src/ch11-03-test-organization.md index 55c0ef73e..690d8beab 100644 --- a/second-edition/src/ch11-03-test-organization.md +++ b/second-edition/src/ch11-03-test-organization.md @@ -272,8 +272,8 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out -単体テスト関数を追加すると、単体テスト区域のテスト結果の行が増えることに似て、 -作成した結合テストファイルにもっとテスト関数を追加すると、そのファイルの区域に行が増えることになります。 +単体テスト関数を追加することで単体テスト区域のテスト結果の行が増えたように、 +作成した結合テストファイルにテスト関数を追加することでそのファイルの区域に結果の行が増えることになります。 結合テストファイルはそれぞれ独自の区域があるため、*tests*ディレクトリにさらにファイルを追加すれば、 結合テストの区域が増えることになるでしょう。 From 0df089b0522623e9c6834fd42431b3032605f194 Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:08:32 +0900 Subject: [PATCH 03/12] Fix chapter 12 --- .../src/ch12-05-working-with-environment-variables.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/second-edition/src/ch12-05-working-with-environment-variables.md b/second-edition/src/ch12-05-working-with-environment-variables.md index 19fa35f6e..fa3801c4a 100644 --- a/second-edition/src/ch12-05-working-with-environment-variables.md +++ b/second-edition/src/ch12-05-working-with-environment-variables.md @@ -107,8 +107,7 @@ Trust me."; 追加直前の`search_case_insensitive`関数では、"rUsT"というクエリは、 両方ともクエリとは大文字小文字が異なるのに、大文字Rの"Rust:"を含む行と、 `“Trust me.”`という行にもマッチするはずです。これが失敗するテストであり、まだ`search_case_insensitive`関数を定義していないので、 -コンパイルは失敗するでしょう。リスト12-16の`search`関数で行ったように空のベクタを常に返す実装の骨格を追加して、 -ご自由にテストがコンパイルされ、失敗する様を確認してください。 +コンパイルは失敗するでしょう。リスト12-16の`search`関数で行ったのと同様に空のベクタを常に返すような仮実装を追加し、テストがコンパイルされるものの、失敗する様をご自由に確認してください。 From 8456ad1c18ac66010ddc080e0646425fcd4156ef Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:09:23 +0900 Subject: [PATCH 04/12] Fix section 13-1. --- second-edition/src/ch13-01-closures.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/second-edition/src/ch13-01-closures.md b/second-edition/src/ch13-01-closures.md index be4f87ac7..bf3c0388a 100644 --- a/second-edition/src/ch13-01-closures.md +++ b/second-edition/src/ch13-01-closures.md @@ -651,7 +651,7 @@ error[E0308]: mismatched types -`Fn`トレイトは、標準ライブラリで用意されています。全てのクロージャは、そのトレイトのどれかを実装しています: +`Fn`トレイトは、標準ライブラリで用意されています。全てのクロージャは、以下のいずれかのトレイトを実装しています: `Fn`、`FnMut`または、`FnOnce`です。「クロージャで環境をキャプチャする」節で、これらのトレイト間の差異を議論します; この例では、`Fn`トレイトを使えます。 @@ -701,7 +701,7 @@ struct Cacher -> 注釈: 関数も3つの`Fn`トレイト全部を実装します。したいことに環境から値をキャプチャすることが必要ないなら、 +> 注釈: 関数も3つの`Fn`トレイト全部を実装します。もし環境から値をキャプチャする必要がなければ、 > `Fn`トレイトを実装する何かが必要になるクロージャではなく、関数を使用できます。 From 1c40d063a47dba314792822bb6b7bcf80a2b7d9c Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:10:53 +0900 Subject: [PATCH 05/12] Fix section 13-3 --- second-edition/src/ch13-03-improving-our-io-project.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/second-edition/src/ch13-03-improving-our-io-project.md b/second-edition/src/ch13-03-improving-our-io-project.md index 317d92d56..add45fab2 100644 --- a/second-edition/src/ch13-03-improving-our-io-project.md +++ b/second-edition/src/ch13-03-improving-our-io-project.md @@ -263,8 +263,7 @@ impl Config { -入出力プロジェクトの`search`関数でも、イテレータを活用することができ、その関数は、 -リスト12-19のように、ここリスト13-28に再現しました。 +入出力プロジェクトの`search`関数でも、イテレータを活用することができます。その関数はリスト12-19に示していますが、以下のリスト13-28に再掲します。 From 1f001e47813351424df99bd27c2cb532b658edb2 Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:12:19 +0900 Subject: [PATCH 06/12] Fix section 19-2 --- second-edition/src/ch19-02-advanced-lifetimes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/second-edition/src/ch19-02-advanced-lifetimes.md b/second-edition/src/ch19-02-advanced-lifetimes.md index 0022e65c1..64f8df8bf 100644 --- a/second-edition/src/ch19-02-advanced-lifetimes.md +++ b/second-edition/src/ch19-02-advanced-lifetimes.md @@ -151,7 +151,7 @@ Rustコンパイラのエラーメッセージは、これらの参照にライ 次にリスト19-14では、`Context`のインスタンスを1つ取り、`Parser`を使ってその文脈をパースし、 -`parse`が返すものを返す関数を追加します。このコードはあまり動きません。 +`parse`が返すものを返す関数を追加します。このコードは期待通りに動きません。 From 74ee5f26ae48f79d4f68f2a83cff0ececf770e23 Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:13:28 +0900 Subject: [PATCH 07/12] Fix section 19-4 --- second-edition/src/ch19-04-advanced-types.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/second-edition/src/ch19-04-advanced-types.md b/second-edition/src/ch19-04-advanced-types.md index 4fcab3d7e..c5deead71 100644 --- a/second-edition/src/ch19-04-advanced-types.md +++ b/second-edition/src/ch19-04-advanced-types.md @@ -241,8 +241,8 @@ pub trait Write { -Rustには、型理論用語で値がないため、空型として知られる`!`という特別な型があります。私たちは、 -関数が絶対に返らない時に戻り値の型の場所に立つので、*never type*(`訳注`: 日本語にはできないので、never型と呼ぶしかないか)と呼ぶのが好きです。 +Rustには、`!`という名前の特別な型があります。それは型理論の専門用語では *Empty型* と呼ばれ値なしを表します。私たちは、 +関数が値を返すことが決して (never) ない時に戻り値の型を記す場所に使われるので、*never type*(`訳注`: 日本語にはできないので、never型と呼ぶしかないか)と呼ぶのが好きです。 こちらが例です: ```rust,ignore @@ -256,13 +256,13 @@ fn bar() -> ! { このコードは、「関数`bar`はneverを返す」と解読します。neverを返す関数は、*発散する関数*(diverging function)と呼ばれます。 -型`!`の値は生成できないので、`bar`が返ることは絶対にあり得ません。 +型`!`の値は生成できないので、`bar`が有効値を返すことは決してできません。 ですが、値を絶対に生成できない型をどう使用するのでしょうか?リスト2-5のコードを思い出してください; -リスト19-34に一部を再現しました。 +リスト19-34に一部を再掲します。 ```rust # let guess = "3"; @@ -383,7 +383,7 @@ loop { コンパイラが特定の型の値1つにどれくらいのスペースのメモリを確保するのかなどの特定の詳細を知る必要があるために、 -型システムには混乱することもある秘密の場所があります: *動的サイズ付け型*の概念です。時として*DST*や*サイズなし型*とも称され、 +Rustの型システムには混乱を招きやすい細かな仕様があります: *動的サイズ付け型*の概念です。時として*DST*や*サイズなし型*とも称され、 これらの型により、実行時にしかサイズを知ることのできない値を使用するコードを書かせてくれます。 From e1bb84d998e5195067eab4d15c4e3c6a5d2caff8 Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:13:55 +0900 Subject: [PATCH 08/12] Fix section 20-1 --- second-edition/src/ch20-01-single-threaded.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/second-edition/src/ch20-01-single-threaded.md b/second-edition/src/ch20-01-single-threaded.md index 11f3812f5..6b7233fc1 100644 --- a/second-edition/src/ch20-01-single-threaded.md +++ b/second-edition/src/ch20-01-single-threaded.md @@ -57,7 +57,7 @@ $ cd hello さて、リスト20-1のコードを*src/main.rs*に入力して始めてください。このコードは、 -やってくるTCPストリームを求めて`127.0.0.1:7878`というアドレスをリッスンします。 +TCPストリームを受信するため`127.0.0.1:7878`というアドレスをリッスンします。 入力ストリームを得ると、`Connection established!`と出力します。 @@ -296,7 +296,7 @@ fn handle_connection(mut stream: TcpStream) { 2番目にバッファーのバイトを文字列に変換し、その文字列を出力します。`String::from_utf8_lossy`関数は、 `&[u8]`を取り、`String`を生成します。名前の“lossy”の箇所は、無効なUTF-8シーケンスを目の当たりにした際のこの関数の振る舞いを示唆しています: 無効なシーケンスを`�`、`U+FFFD REPLACEMENT CHARACTER`で置き換えます。 -置き換え文字をリクエストデータによって埋められたバッファーの文字の箇所に目撃する可能性があります。 +リクエストデータによって埋められなかったバッファーの部分(`訳注` バッファーとして512バイトの領域を用意しているが、リクエストデータは512バイト存在しないことがほとんどなので変数 `buffer` の後ろ部分が埋められないまま放置されることを意図していると思われる) が置き換え文字になって表示されるのをみるでしょう。 From 694e02398bd8431a61cc8941146799107d9d713a Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:14:23 +0900 Subject: [PATCH 09/12] Fix section 20-2 --- second-edition/src/ch20-02-multithreaded.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/second-edition/src/ch20-02-multithreaded.md b/second-edition/src/ch20-02-multithreaded.md index 0d0a22e62..54536f34f 100644 --- a/second-edition/src/ch20-02-multithreaded.md +++ b/second-edition/src/ch20-02-multithreaded.md @@ -1401,8 +1401,8 @@ std::ops::FnOnce() + std::marker::Sendのサイズを静的に決定できませ -Rustは、コンパイラが改善できる箇所ではまだ、発展途上にありますが、将来的にリスト20-20のコードは、 -ただ単純にうまく動くはずです。まさしくあなたのような方がこれや他の問題を修正するのに取り掛かっています!この本を完了したら、 +Rustはまだコンパイラの改善途上にあり、リスト20-20のコードは、 +将来的にうまく動くようになるべきです。まさしくあなたのような方がこれや他の問題を修正しています!この本を完了したら、 是非ともあなたにも参加していただきたいです。 From 0d303cc5059b5aee2bc8a7af0bc1862f99e403ef Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Wed, 6 May 2020 20:14:46 +0900 Subject: [PATCH 10/12] Fix Appendix G --- second-edition/src/appendix-07-nightly-rust.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/second-edition/src/appendix-07-nightly-rust.md b/second-edition/src/appendix-07-nightly-rust.md index 5b2725eef..06c90b32c 100644 --- a/second-edition/src/appendix-07-nightly-rust.md +++ b/second-edition/src/appendix-07-nightly-rust.md @@ -1,6 +1,6 @@ -## 付録G: Rustが作られ方と“Nightly Rust” +## 付録G: Rustの作られ方と“Nightly Rust” From e2c2d3ec95eab28c8bcd63b65b9efb540cc38ce3 Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Fri, 3 Jul 2020 19:32:17 +0900 Subject: [PATCH 11/12] Fix according to https://github.com/rust-lang-ja/book-ja/pull/33#discussion_r446506769 --- second-edition/src/ch04-01-what-is-ownership.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/second-edition/src/ch04-01-what-is-ownership.md b/second-edition/src/ch04-01-what-is-ownership.md index 677a594b8..6d5eea111 100644 --- a/second-edition/src/ch04-01-what-is-ownership.md +++ b/second-edition/src/ch04-01-what-is-ownership.md @@ -815,7 +815,7 @@ fn main() { // i32はCopyなので、この後にxを使っても // 大丈夫 -} // ここでxがスコープを抜けた後にsもスコープを抜ける。ただし、sの値はムーブされてるので、何も呼び出されない。 +} // ここでxがスコープを抜け、sもスコープを抜ける。ただし、sの値はムーブされているので、何も特別なことは起こらない。 // fn takes_ownership(some_string: String) { // some_stringがスコープに入る。 From 0d5c521269b4b691023c219e33c14187b8fe4d40 Mon Sep 17 00:00:00 2001 From: Jun-ya Norimatsu Date: Fri, 3 Jul 2020 19:36:22 +0900 Subject: [PATCH 12/12] Fix according to https://github.com/rust-lang-ja/book-ja/pull/33#discussion_r446507811 --- second-edition/src/ch19-04-advanced-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/second-edition/src/ch19-04-advanced-types.md b/second-edition/src/ch19-04-advanced-types.md index c5deead71..a09243b44 100644 --- a/second-edition/src/ch19-04-advanced-types.md +++ b/second-edition/src/ch19-04-advanced-types.md @@ -256,7 +256,7 @@ fn bar() -> ! { このコードは、「関数`bar`はneverを返す」と解読します。neverを返す関数は、*発散する関数*(diverging function)と呼ばれます。 -型`!`の値は生成できないので、`bar`が有効値を返すことは決してできません。 +型`!`の値は生成できないので、`bar`からリターンする(呼び出し元に制御を戻す)ことは決してできません。