Skip to content

Commit 4e3d9ea

Browse files
committed
ch10 ジェネリック型、トレイト、ライフタイムの和訳を最新版に更新
rust-lang/book@19c40bf
1 parent 4e664a9 commit 4e3d9ea

File tree

90 files changed

+865
-1287
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+865
-1287
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-01/src/main.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@
22
fn main() {
33
let number_list = vec![34, 50, 25, 100, 65];
44

5-
let mut largest = number_list[0];
5+
let mut largest = &number_list[0];
66

7-
for number in number_list {
7+
for number in &number_list {
88
if number > largest {
99
largest = number;
1010
}
1111
}
1212

13+
// "最大値は{}です"
1314
println!("The largest number is {}", largest);
1415
// ANCHOR_END: here
15-
assert_eq!(largest, 100);
16+
assert_eq!(*largest, 100);
1617
// ANCHOR: here
1718
}
1819
// ANCHOR_END: here
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-02/src/main.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
fn main() {
22
let number_list = vec![34, 50, 25, 100, 65];
33

4-
let mut largest = number_list[0];
4+
let mut largest = &number_list[0];
55

6-
for number in number_list {
6+
for number in &number_list {
77
if number > largest {
88
largest = number;
99
}
@@ -13,9 +13,9 @@ fn main() {
1313

1414
let number_list = vec![102, 34, 6000, 89, 54, 2, 43, 8];
1515

16-
let mut largest = number_list[0];
16+
let mut largest = &number_list[0];
1717

18-
for number in number_list {
18+
for number in &number_list {
1919
if number > largest {
2020
largest = number;
2121
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-03/src/main.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ fn main() {
1717
let result = largest(&number_list);
1818
println!("The largest number is {}", result);
1919
// ANCHOR_END: here
20-
assert_eq!(result, &100);
20+
assert_eq!(*result, 100);
2121
// ANCHOR: here
2222

2323
let number_list = vec![102, 34, 6000, 89, 54, 2, 43, 8];
2424

2525
let result = largest(&number_list);
2626
println!("The largest number is {}", result);
2727
// ANCHOR_END: here
28-
assert_eq!(result, &6000);
28+
assert_eq!(*result, 6000);
2929
// ANCHOR: here
3030
}
3131
// ANCHOR_END: here
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-04/src/main.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@ fn main() {
2929
let result = largest_i32(&number_list);
3030
println!("The largest number is {}", result);
3131
// ANCHOR_END: here
32-
assert_eq!(result, &100);
32+
assert_eq!(*result, 100);
3333
// ANCHOR: here
3434

3535
let char_list = vec!['y', 'm', 'a', 'q'];
3636

3737
let result = largest_char(&char_list);
3838
println!("The largest char is {}", result);
3939
// ANCHOR_END: here
40-
assert_eq!(result, &'y');
40+
assert_eq!(*result, 'y');
4141
// ANCHOR: here
4242
}
4343
// ANCHOR_END: here
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
$ cargo run
22
Compiling chapter10 v0.1.0 (file:///projects/chapter10)
3-
error[E0369]: binary operation `>` cannot be applied to type `T`
3+
error[E0369]: binary operation `>` cannot be applied to type `&T`
4+
(エラー: 2項演算`>`は、型`&T`に適用できません)
45
--> src/main.rs:5:17
56
|
67
5 | if item > largest {
7-
| ---- ^ ------- T
8+
| ---- ^ ------- &T
89
| |
9-
| T
10+
| &T
1011
|
11-
= note: `T` might need a bound for `std::cmp::PartialOrd`
12-
13-
error: aborting due to previous error
12+
help: consider restricting type parameter `T`
13+
(ヘルプ: 型引数`T`を制約することを考慮してください)
14+
|
15+
1 | fn largest<T: std::cmp::PartialOrd>(list: &[T]) -> &T {
16+
| ++++++++++++++++++++++
1417

1518
For more information about this error, try `rustc --explain E0369`.
16-
error: could not compile `chapter10`.
17-
18-
To learn more, run the command again with --verbose.
19+
error: could not compile `chapter10` (bin "chapter10") due to 1 previous error

listings/ch10-generic-types-traits-and-lifetimes/listing-10-05/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
fn largest<T>(list: &[T]) -> &T {
2-
let mut largest = list[0];
2+
let mut largest = &list[0];
33

44
for item in list {
55
if item > largest {
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
$ cargo run
22
Compiling chapter10 v0.1.0 (file:///projects/chapter10)
33
error[E0308]: mismatched types
4+
(エラー: 型が合いません)
45
--> src/main.rs:7:38
56
|
67
7 | let wont_work = Point { x: 5, y: 4.0 };
78
| ^^^ expected integer, found floating-point number
89

9-
error: aborting due to previous error
10-
1110
For more information about this error, try `rustc --explain E0308`.
12-
error: could not compile `chapter10`.
13-
14-
To learn more, run the command again with --verbose.
11+
error: could not compile `chapter10` (bin "chapter10") due to 1 previous error
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-11/src/main.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
struct Point<T, U> {
2-
x: T,
3-
y: U,
1+
struct Point<X1, Y1> {
2+
x: X1,
3+
y: Y1,
44
}
55

6-
impl<T, U> Point<T, U> {
7-
fn mixup<V, W>(self, other: Point<V, W>) -> Point<T, W> {
6+
impl<X1, Y1> Point<X1, Y1> {
7+
fn mixup<X2, Y2>(self, other: Point<X2, Y2>) -> Point<X1, Y2> {
88
Point {
99
x: self.x,
1010
y: other.y,

listings/ch10-generic-types-traits-and-lifetimes/listing-10-12/Cargo.lock

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
2-
name = "chapter10"
2+
name = "aggregator"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-13/Cargo.lock

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
2-
name = "chapter10"
2+
name = "aggregator"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-14/Cargo.lock

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
2-
name = "chapter10"
2+
name = "aggregator"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]

listings/ch10-generic-types-traits-and-lifetimes/listing-10-15/src/main.rs

-23
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "chapter10"
33
version = "0.1.0"
4-
authors = ["Your Name <[email protected]>"]
5-
edition = "2018"
4+
edition = "2021"
65

76
[dependencies]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
$ cargo run
2+
Compiling chapter10 v0.1.0 (file:///projects/chapter10)
3+
error[E0597]: `x` does not live long enough
4+
(エラー[E0597]: `x`の生存期間が短すぎます)
5+
--> src/main.rs:6:13
6+
|
7+
5 | let x = 5;
8+
| - binding `x` declared here
9+
| (束縛`x`はここで宣言されています)
10+
6 | r = &x;
11+
| ^^ borrowed value does not live long enough
12+
| (借用された値の生存期間が短すぎます)
13+
7 | }
14+
| - `x` dropped here while still borrowed
15+
| (`x`は借用されている間にここでドロップされました)
16+
8 |
17+
9 | println!("r: {}", r);
18+
| - borrow later used here
19+
| (その後、借用はここで使われています)
20+
21+
For more information about this error, try `rustc --explain E0597`.
22+
error: could not compile `chapter10` (bin "chapter10") due to 1 previous error
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
fn main() {
2+
let r;
3+
4+
{
5+
let x = 5;
6+
r = &x;
7+
}
8+
9+
println!("r: {}", r);
10+
}

listings/ch10-generic-types-traits-and-lifetimes/listing-10-17/Cargo.lock

-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)