Skip to content

Commit

Permalink
ch06 Enumとパターンマッチングの和訳を最新版に更新
Browse files Browse the repository at this point in the history
  • Loading branch information
shinmili committed Feb 4, 2025
1 parent 40d8fd5 commit 70c7a13
Show file tree
Hide file tree
Showing 44 changed files with 526 additions and 610 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// ANCHOR: here
#[derive(Debug)] // so we can inspect the state in a minute
#[derive(Debug)] // すぐに州を検査できるように
enum UsState {
Alabama,
Alaska,
// --snip--
// ----
}

enum Coin {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
fn main() {
// ANCHOR: here
let some_u8_value = Some(0u8);
match some_u8_value {
Some(3) => println!("three"),
let config_max = Some(3u8);
match config_max {
Some(max) => println!("The maximum is configured to be {}", max),
_ => (),
}
// ANCHOR_END: here
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// ANCHOR: here
struct QuitMessage; // unit struct
struct QuitMessage; // ユニット構造体
struct MoveMessage {
x: i32,
y: i32,
}
struct WriteMessage(String); // tuple struct
struct ChangeColorMessage(i32, i32, i32); // tuple struct
struct WriteMessage(String); // タプル構造体
struct ChangeColorMessage(i32, i32, i32); // タプル構造体
// ANCHOR_END: here

fn main() {}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ fn main() {
// ANCHOR: here
impl Message {
fn call(&self) {
// method body would be defined here
// メソッド本体はここで定義されます
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
fn main() {
// ANCHOR: here
let some_number = Some(5);
let some_string = Some("a string");
let some_char = Some('e');

let absent_number: Option<i32> = None;
// ANCHOR_END: here
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
$ cargo run
Compiling enums v0.1.0 (file:///projects/enums)
error[E0277]: cannot add `std::option::Option<i8>` to `i8`
error[E0277]: cannot add `Option<i8>` to `i8`
(エラー: `Option<i8>`を`i8`に足すことはできません)
--> src/main.rs:5:17
|
5 | let sum = x + y;
| ^ no implementation for `i8 + std::option::Option<i8>`
| ^ no implementation for `i8 + Option<i8>`
(`i8 + `Option<i8>`のための実装がありません)
|
= help: the trait `std::ops::Add<std::option::Option<i8>>` is not implemented for `i8`

error: aborting due to previous error
= help: the trait `Add<Option<i8>>` is not implemented for `i8`
(ヘルプ: トレイト`Add<Option<i8>`が`i8`に対して実装されていません)
= help: the following other types implement trait `Add<Rhs>`:
(ヘルプ: 以下の型であればトレイト`Add<Rhs>`を実装しています:)
<i8 as Add>
<i8 as Add<&i8>>
<&'a i8 as Add<i8>>
<&i8 as Add<&i8>>

For more information about this error, try `rustc --explain E0277`.
error: could not compile `enums`.

To learn more, run the command again with --verbose.
error: could not compile `enums` (bin "enums") due to 1 previous error
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
$ cargo run
Compiling enums v0.1.0 (file:///projects/enums)
error[E0004]: non-exhaustive patterns: `None` not covered
(エラー: 包括的でないパターン: `None`が網羅されていません)
--> src/main.rs:3:15
|
3 | match x {
| ^ pattern `None` not covered
(パターン`None`が網羅されていません)
|
note: `Option<i32>` defined here
--> /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/option.rs:570:1
::: /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/option.rs:574:5
|
= note: not covered
= note: the matched value is of type `Option<i32>`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
(ヘルプ: ワイルドカードパターンか、以下に示すように明示的なパターンを持つアームを追加することで、すべての可能な場合が確実に処理されるようにしてください)
|
4 ~ Some(i) => Some(i + 1),
5 ~ None => todo!(),
|
= help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

error: aborting due to previous error

For more information about this error, try `rustc --explain E0004`.
error: could not compile `enums`.

To learn more, run the command again with --verbose.
error: could not compile `enums` (bin "enums") due to 1 previous error

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
fn main() {
let some_u8_value = Some(0u8);
// ANCHOR: here
if let Some(3) = some_u8_value {
println!("three");
let config_max = Some(3u8);
if let Some(max) = config_max {
println!("The maximum is configured to be {}", max);
}
// ANCHOR_END: here
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
enum UsState {
Alabama,
Alaska,
// --snip--
// ----
}

enum Coin {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
enum UsState {
Alabama,
Alaska,
// --snip--
// ----
}

enum Coin {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
edition = "2018"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
fn main() {
// ANCHOR: here
let dice_roll = 9;
match dice_roll {
3 => add_fancy_hat(),
7 => remove_fancy_hat(),
other => move_player(other),
}

fn add_fancy_hat() {}
fn remove_fancy_hat() {}
fn move_player(num_spaces: u8) {}
// ANCHOR_END: here
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
edition = "2021"

[dependencies]
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
fn main() {
// ANCHOR: here
let dice_roll = 9;
match dice_roll {
3 => add_fancy_hat(),
7 => remove_fancy_hat(),
_ => reroll(),
}

fn add_fancy_hat() {}
fn remove_fancy_hat() {}
fn reroll() {}
// ANCHOR_END: here
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[package]
name = "enums"
version = "0.1.0"
edition = "2021"

[dependencies]
Loading

0 comments on commit 70c7a13

Please sign in to comment.