@@ -30,8 +30,8 @@ match x {
30
30
<!-- matching’, which `match` is an implementation of. There’s an [entire section on -->
31
31
<!-- patterns][patterns] that covers all the patterns that are possible here. -->
32
32
` match ` は一つの式とその式の値に基づく複数のブランチを引数に取ります。
33
- 一つ一つの「分岐 」は ` val => expression ` という形式を取ります。
34
- 値がマッチした時に、対応する分岐の式が評価されます 。
33
+ 一つ一つの「腕 」は ` val => expression ` という形式を取ります。
34
+ 値がマッチした時に、対応する腕の式が評価されます 。
35
35
このような式が ` match ` と呼ばれるのは「パターンマッチ」に由来します。
36
36
可能なすべてのパターンについて説明した、[ パターンの説明のために書かれたセクション] [ patterns ] が存在します。
37
37
@@ -41,9 +41,9 @@ match x {
41
41
<!-- enforces ‘exhaustiveness checking’. Do you see that last arm, the one with the -->
42
42
<!-- underscore (`_`)? If we remove that arm, Rust will give us an error: -->
43
43
` match ` を使う利点は何でしょうか? いくつか有りますが、
44
- まず一つ目としては ` match ` をつかうことで、「完全性チェック 」が実施されます。
45
- 上のコードで、最後のアンダースコア( ` _ ` )を用いている分岐があるのがわかりますか ?
46
- もし、その分岐を削除した場合 、Rustは以下の様なエラーを発生させます:
44
+ まず一つ目としては ` match ` をつかうことで、「網羅性検査 」が実施されます。
45
+ 上のコードで、最後のアンダースコア( ` _ ` )を用いている腕があるのがわかりますか ?
46
+ もし、その腕を削除した場合 、Rustは以下の様なエラーを発生させます:
47
47
48
48
``` text
49
49
error: non-exhaustive patterns: `_` not covered
@@ -59,10 +59,10 @@ error: non-exhaustive patterns: `_` not covered
59
59
言い換えると、Rustは値を忘れていることを伝えようとしているのです。
60
60
なぜなら ` x ` は整数であるため、Rustは ` x ` は多くの異なる値を取ることができることを知っています。
61
61
例えば、 ` 6 ` などがそれにに当たります。
62
- もし ` _ ` がなかった場合、 ` 6 ` にマッチする分岐が存在しない事になります 、そのためRustはコンパイルを通しません。
63
- ` _ ` は「全てキャッチする分岐 」のように振る舞います。
64
- もし他の分岐がどれもマッチしなかった場合 、 ` _ ` の分岐が実行されることになります 、
65
- この「全てキャッチする分岐 」が存在するため、 ` x ` が取り得るすべての値について対応する分岐が存在することになり 、コンパイルが成功します。
62
+ もし ` _ ` がなかった場合、 ` 6 ` にマッチする腕が存在しない事になります 、そのためRustはコンパイルを通しません。
63
+ ` _ ` は「全てキャッチする腕 」のように振る舞います。
64
+ もし他の腕がどれもマッチしなかった場合 、 ` _ ` の腕が実行されることになります 、
65
+ この「全てキャッチする腕 」が存在するため、 ` x ` が取り得るすべての値について対応する腕が存在することになり 、コンパイルが成功します。
66
66
67
67
<!-- `match` is also an expression, which means we can use it on the right-hand -->
68
68
<!-- side of a `let` binding or directly where an expression is used: -->
@@ -85,7 +85,7 @@ let number = match x {
85
85
` match ` はしばしば、ある型からある型へ変換するための良い手段になりまうす。
86
86
87
87
<!-- # Matching on enums -->
88
- # 列挙型にたいするマッチ
88
+ # 列挙型に対するマッチ
89
89
90
90
<!-- Another important use of the `match` keyword is to process the possible -->
91
91
<!-- variants of an enum: -->
@@ -116,8 +116,8 @@ fn process_message(msg: Message) {
116
116
<!-- Again, the Rust compiler checks exhaustiveness, so it demands that you -->
117
117
<!-- have a match arm for every variant of the enum. If you leave one off, it -->
118
118
<!-- will give you a compile-time error unless you use `_`. -->
119
- 繰り返しになりますが、Rustコンパイラは完全性のチェックを行い 、列挙型のすべてのバリアントに対して、マッチする分岐が存在することを要求します 。
120
- もし、一つでもマッチする分岐のないバリアントを残している場合 、 ` _ ` を用いなければコンパイルエラーが発生します。
119
+ 繰り返しになりますが、Rustコンパイラは網羅性のチェックを行い 、列挙型のすべてのバリアントに対して、マッチする腕が存在することを要求します 。
120
+ もし、一つでもマッチする腕のないバリアントを残している場合 、 ` _ ` を用いなければコンパイルエラーが発生します。
121
121
122
122
<!-- Unlike the previous uses of `match`, you can’t use the normal `if` -->
123
123
<!-- statement to do this. You can use the [`if let`][if-let] statement, -->
0 commit comments