1
1
<!--
2
2
## Appendix E - Editions
3
3
-->
4
- ## 付録E - Edition
4
+ ## 付録E:エディション
5
5
6
6
<!--
7
7
In Chapter 1, you saw that `cargo new` adds a bit of metadata to your
8
8
*Cargo.toml* file about an edition. This appendix talks about what that means!
9
9
-->
10
- 1章で 、` cargo new ` がeditionに関するちょっとしたメタデータを * Cargo.toml* に追加しているのを見ましたね。
10
+ 第1章で 、` cargo new ` が エディションに関するちょっとしたメタデータを * Cargo.toml* に追加しているのを見ましたね。
11
11
この付録ではその意味についてお話します!
12
12
13
13
<!--
@@ -18,8 +18,8 @@ while, all of these tiny changes add up. But from release to release, it can be
18
18
difficult to look back and say, “Wow, between Rust 1.10 and Rust 1.31, Rust has
19
19
changed a lot!”
20
20
-->
21
- Rust言語とコンパイラは6週間のリリースサイクルを採用しています。つまり、ユーザーにはコンスタントに新しい機能が流れてくるというわけです 。
22
- 他のプログラミング言語は、より少ない回数 、より大きなリリースを行いますが、Rustは小さなアップデートをより頻繁に行います 。
21
+ Rust言語とコンパイラは6週間のリリースサイクルを採用しています。つまり、ユーザにはコンスタントに新しい機能が流れてくるというわけです 。
22
+ 他のプログラミング言語は、より少ない回数で 、より大きなリリースを行いますが、Rustは小さなアップデートを頻繁に行います 。
23
23
しばらくすると、これらの小さな変更が溜まっていきます。
24
24
しかし、これらを振り返って、「Rust 1.10とRust 1.31を比較すると、すごく変わったねえ!」などとリリースごとに言うのは難しいです。
25
25
@@ -29,14 +29,14 @@ edition brings together the features that have landed into a clear package with
29
29
fully updated documentation and tooling. New editions ship as part of the usual
30
30
six-week release process.
31
31
-->
32
- 2、3年ごとに、RustチームはRustの新しい * edition * を作ります。
33
- それぞれのeditionには 、それまでにRustにやってきた新しい機能が、完全に更新されたドキュメントとツール群とともに、まとまったパッケージとなってまとめられています 。
34
- 新しいeditionは通常の6週間ごとのリリースの一部として配布されます 。
32
+ 2、3年ごとに、RustチームはRustの新しい * エディション * を作ります。
33
+ それぞれのエディションには 、それまでにRustにやってきた新しい機能が、完全に更新されたドキュメントとツール群とともに、一つのパッケージとなってまとめられています 。
34
+ 新しいエディションは通常の6週間ごとのリリースの一部として配布されます 。
35
35
36
36
<!--
37
37
Editions serve different purposes for different people:
38
38
-->
39
- それぞれの人々にとってeditionは異なる意味を持ちます:
39
+ それぞれの人々にとってエディションは異なる意味を持ちます。
40
40
41
41
<!--
42
42
* For active Rust users, a new edition brings together incremental changes into
@@ -46,24 +46,25 @@ Editions serve different purposes for different people:
46
46
* For those developing Rust, a new edition provides a rallying point for the
47
47
project as a whole.
48
48
-->
49
- * アクティブなRustユーザにとっては、新しいeditionは 、少しずつ増えてきた変更点を理解しやすいパッケージにしてまとめるものです。
50
- * Rustユーザでない人にとっては、新しいeditionは 、何かしら大きな達成がなされたことを示します。Rustには今一度目を向ける価値があると感じさせるかもしれません。
51
- * Rustを開発している人にとっては、新しいeditionは 、プロジェクト全体の目標地点となります。
49
+ * アクティブなRustユーザにとっては、新しいエディションは 、少しずつ増えてきた変更点を理解しやすいパッケージにしてまとめるものです。
50
+ * Rustユーザでない人にとっては、新しいエディションは 、何かしら大きな達成がなされたことを示します。Rustには今一度目を向ける価値があると感じさせるかもしれません。
51
+ * Rustを開発している人にとっては、新しいエディションは 、プロジェクト全体の目標地点となります。
52
52
53
53
<!--
54
- At the time of this writing, two Rust editions are available: Rust 2015 and
55
- Rust 2018 . This book is written using Rust 2018 edition idioms.
54
+ At the time of this writing, three Rust editions are available: Rust 2015, Rust
55
+ 2018, and Rust 2021 . This book is written using Rust 2021 edition idioms.
56
56
-->
57
- この文書を書いている時点(訳注:原文のコミットは2019-03-01)では、2つのRustのeditionが利用できます:Rust 2015とRust 2018です。
58
- この本はRust 2018の慣例に従って書かれています。
57
+ この文書を書いている時点(訳注:原文のコミットは2021年12月23日)では、3つのRustのエディションが利用できます。
58
+ Rust 2015、Rust 2018、Rest 2021です。
59
+ この本はRust 2021エディションの慣例に従って書かれています。
59
60
60
61
<!--
61
62
The `edition` key in *Cargo.toml* indicates which edition the compiler should
62
63
use for your code. If the key doesn’t exist, Rust uses `2015` as the edition
63
64
value for backward compatibility reasons.
64
65
-->
65
66
* Cargo.toml* における` edition ` キーは、コードに対してコンパイラがどのエディションを適用すべきかを示しています。
66
- もしキーが存在しなければ、Rustは後方互換性のため` 2015 ` をeditionの値として使います 。
67
+ もしキーが存在しなければ、Rustは後方互換性のため` 2015 ` をエディションの値として使います 。
67
68
68
69
<!--
69
70
Each project can opt in to an edition other than the default 2015 edition.
@@ -72,8 +73,8 @@ conflicts with identifiers in code. However, unless you opt in to those
72
73
changes, your code will continue to compile even as you upgrade the Rust
73
74
compiler version you use.
74
75
-->
75
- 標準の2015 edition以外のeditionを使うという選択はそれぞれのプロジェクトですることができます 。
76
- editionには 、コード内の識別子と衝突してしまう新しいキーワードの導入など、互換性のない変更が含まれる可能性があります。
76
+ 標準の2015エディション以外のエディションを使うという選択はそれぞれのプロジェクトですることができます 。
77
+ エディションには 、コード内の識別子と衝突してしまう新しいキーワードの導入など、互換性のない変更が含まれる可能性があります。
77
78
しかし、それらの変更を選択しない限り、Rustのコンパイラのバージョンを更新しても、コードは変わらずコンパイルできます。
78
79
79
80
<!--
@@ -85,8 +86,8 @@ Rust 2018, your project will compile and be able to use that dependency. The
85
86
opposite situation, where your project uses Rust 2018 and a dependency uses
86
87
Rust 2015, works as well.
87
88
-->
88
- Rustコンパイラは全バージョンにおいて、そのコンパイラのリリースまでに存在したすべてのeditionをサポートしており、またサポートされているeditionのクレートはすべてリンクできます 。
89
- editionの変更はコンパイラが最初にコードを構文解析するときにのみ影響します 。
89
+ Rustコンパイラは全バージョンにおいて、そのコンパイラのリリースまでに存在したすべてのエディションをサポートしており、またサポートされているエディションのクレートはすべてリンクできます 。
90
+ エディションの変更はコンパイラが最初にコードを構文解析するときにのみ影響します 。
90
91
なので、あなたがRust 2015を使っていて、依存先にRust 2018を使うものがあったとしても、あなたのプロジェクトはコンパイルでき、その依存先を使うことができます。
91
92
逆に、あなたのプロジェクトがRust 2018を、依存先がRust 2015を使っていても、同じく問題はありません。
92
93
@@ -97,15 +98,18 @@ made. However, in some cases, mainly when new keywords are added, some new
97
98
features might only be available in later editions. You will need to switch
98
99
editions if you want to take advantage of such features.
99
100
-->
100
- まあ実のところ、ほとんどの機能はすべてのeditionで利用可能でしょう 。
101
- どのRust editionを使っている開発者も、新しい安定リリースが出ると、改善したなと感じるのは変わらないでしょう 。
102
- しかし、場合によっては――多くは新しいキーワードが追加された時――新機能が新しいeditionでしか利用できないということがあるかもしれません 。
103
- そのような機能を利用したいなら、editionを切り替える必要があるでしょう 。
101
+ まあ実のところ、ほとんどの機能はすべてのエディションで利用可能でしょう 。
102
+ どのRustエディションを使っている開発者も、新しい安定リリースが出ると改善したなと感じるのは変わらないでしょう 。
103
+ しかし、場合によって(多くは新しいキーワードが追加されたとき)は、新機能が新しいエディションでしか利用できないことがあるかもしれません 。
104
+ そのような機能を利用したいなら、エディションを切り替える必要があるでしょう 。
104
105
105
106
<!--
106
107
For more details, the [*Edition
107
108
Guide*](https://doc.rust-lang.org/stable/edition-guide/) is a complete book
108
109
about editions that enumerates the differences between editions and explains
109
110
how to automatically upgrade your code to a new edition via `cargo fix`.
110
111
-->
111
- より詳しく知りたいなら、[ * Editionガイド* ] ( https://doc.rust-lang.org/stable/edition-guide/ ) という、editionに関するすべてを説明している本があります。edition同士の違いや、` cargo fix ` を使って自動的にコードを新しいeditionにアップグレードする方法が書かれています。
112
+ より詳しく知りたいなら、[ * エディションガイド* ] ( https://doc.rust-lang.org/stable/edition-guide/ ) という、エディションに関するすべてを説明している本があります。
113
+ エディション同士の違いや、` cargo fix ` を使って自動的にコードを新しいエディションにアップグレードする方法が書かれています。
114
+
115
+ > 訳注:日本語版のエディションガイドは[ こちら] ( https://doc.rust-jp.rs/edition-guide/ ) にあります。
0 commit comments