Skip to content

Commit 12f5793

Browse files
committed
生存期間 -> ライフタイム
1 parent da29bd4 commit 12f5793

File tree

6 files changed

+46
-46
lines changed

6 files changed

+46
-46
lines changed

src/SUMMARY.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
* [repr(Rust)](repr-rust.md)
1010
* [奇妙なサイズの型](exotic-sizes.md)
1111
* [代替メモリレイアウト](other-reprs.md)
12-
* [所有権と生存期間](ownership.md)
12+
* [所有権とライフタイム](ownership.md)
1313
* [リファレンス](references.md)
14-
* [生存期間](lifetimes.md)
15-
* [生存期間システムの限界](lifetime-mismatch.md)
16-
* [生存期間の省略](lifetime-elision.md)
14+
* [ライフタイム](lifetimes.md)
15+
* [ライフタイムシステムの限界](lifetime-mismatch.md)
16+
* [ライフタイムの省略](lifetime-elision.md)
1717
* [無制限のライフタイム](unbounded-lifetimes.md)
1818
* [Higher-Rank Trait Bounds](hrtb.md)
1919
* [Subtyping and Variance](subtyping.md)

src/lifetime-elision.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
# Lifetime Elision
33
-->
44

5-
# 生存期間の省略
5+
# ライフタイムの省略
66

77
<!--
88
In order to make common patterns more ergonomic, Rust allows lifetimes to be
99
*elided* in function signatures.
1010
-->
1111

12-
よくあるパターンをより易しく書けるように、Rust では関数シグネチャの生存期間を省略できます
12+
よくあるパターンをより易しく書けるように、Rust では関数シグネチャのライフタイムを省略できます
1313

1414
<!--
1515
A *lifetime position* is anywhere you can write a lifetime in a type:
1616
-->
1717

18-
*生存期間ポジション* とは、型の定義において生存期間を書ける場所のことです
18+
*ライフタイムポジション* とは、型の定義においてライフタイムを書ける場所のことです
1919

2020
```rust,ignore
2121
&'a T
@@ -27,7 +27,7 @@ T<'a>
2727
Lifetime positions can appear as either "input" or "output":
2828
-->
2929

30-
生存期間ポジションは、「入力」か「出力」のいづれかです。
30+
ライフタイムポジションは、「入力」か「出力」のいづれかです。
3131

3232
<!--
3333
* For `fn` definitions, input refers to the types of the formal arguments
@@ -40,17 +40,17 @@ Lifetime positions can appear as either "input" or "output":
4040
-->
4141

4242
* `fn` 定義では、入力とは仮引数の型のことで、出力とは結果の型のことです。
43-
`fn foo(s: *str) -> (&str, &str)` では、入力ポジションの生存期間が一つ省略され
44-
出力ポジションの生存期間が二つ省略されています
43+
`fn foo(s: *str) -> (&str, &str)` では、入力ポジションのライフタイムが一つ省略され
44+
出力ポジションのライフタイムが二つ省略されています
4545
`fn` メソッド定義の入力ポジションには、
46-
メソッドの `impl` ヘッダに現れる生存期間は含まれません
47-
(デフォルトメソッドの場合の trait ヘッダに現れる生存期間も含まれません。)
46+
メソッドの `impl` ヘッダに現れるライフタイムは含まれません
47+
(デフォルトメソッドの場合の trait ヘッダに現れるライフタイムも含まれません。)
4848

4949
<!--
5050
* In the future, it should be possible to elide `impl` headers in the same manner.
5151
-->
5252

53-
* 将来のバージョンでは、`impl` ヘッダの生存期間の省略も同様に可能になるでしょう
53+
* 将来のバージョンでは、`impl` ヘッダのライフタイムの省略も同様に可能になるでしょう
5454

5555
<!--
5656
Elision rules are as follows:
@@ -63,29 +63,29 @@ Elision rules are as follows:
6363
parameter.
6464
-->
6565

66-
* 入力ポジションの省略された生存期間は、それぞれ別の生存期間パラメタになります
66+
* 入力ポジションの省略されたライフタイムは、それぞれ別のライフタイムパラメタになります
6767

6868
<!--
6969
* If there is exactly one input lifetime position (elided or not), that lifetime
7070
is assigned to *all* elided output lifetimes.
7171
-->
7272

73-
* 入力ポジションの生存期間(省略されているかどうかに関わらず)が一つしか無い場合、
74-
省略された出力生存期間全てにその生存期間が割り当てられます
73+
* 入力ポジションのライフタイム(省略されているかどうかに関わらず)が一つしか無い場合、
74+
省略された出力ライフタイム全てにそのライフタイムが割り当てられます
7575

7676
<!--
7777
* If there are multiple input lifetime positions, but one of them is `&self` or
7878
`&mut self`, the lifetime of `self` is assigned to *all* elided output lifetimes.
7979
-->
8080

81-
* 入力ポジションに複数の生存期間があって、そのうちの一つが `&self` または `&mut self` の場合、
82-
省略された出力生存期間全てに `self` の生存期間が割り当てられます
81+
* 入力ポジションに複数のライフタイムがあって、そのうちの一つが `&self` または `&mut self` の場合、
82+
省略された出力ライフタイム全てに `self` のライフタイムが割り当てられます
8383

8484
<!--
8585
* Otherwise, it is an error to elide an output lifetime.
8686
-->
8787

88-
* それ以外の場合は、出力の生存期間を省略するとエラーになります
88+
* それ以外の場合は、出力のライフタイムを省略するとエラーになります
8989

9090
<!--
9191
Examples:

src/lifetime-mismatch.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Limits of Lifetimes
33
-->
44

5-
# 生存期間システムの限界
5+
# ライフタイムシステムの限界
66

77
<!--
88
Given the following code:
@@ -97,8 +97,8 @@ try to call `share`, and it sees we're trying to alias that `&'c mut foo` and
9797
blows up in our face!
9898
-->
9999

100-
`loan` の生存期間と mutate_and_share のシグネチャとのため、
101-
`&mut foo` の生存期間は `'c` に延長されなくてはなりません。
100+
`loan` のライフタイムと mutate_and_share のシグネチャとのため、
101+
`&mut foo` のライフタイムは `'c` に延長されなくてはなりません。
102102
そして、`share` を呼ぼうとするとき、`&'c mut foo` の別名を取ろうとすると認識され、大失敗に終わるのです。
103103

104104
<!--
@@ -107,7 +107,7 @@ care about, but the lifetime system is too coarse-grained to handle that.
107107
-->
108108

109109
このプログラムは、私たちにとって重要なリファレンスの意味的には全く正しいのですが、
110-
生存期間システムはこのプログラムを処理するには粗すぎるのです
110+
ライフタイムシステムはこのプログラムを処理するには粗すぎるのです
111111

112112
<!--
113113
TODO: other common problems? SEME regions stuff, mostly?

src/lifetimes.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Lifetimes
33
-->
44

5-
# 生存期間
5+
# ライフタイム
66

77
<!--
88
Rust enforces these rules through *lifetimes*. Lifetimes are effectively
@@ -11,9 +11,9 @@ and anything that contains a reference, is tagged with a lifetime specifying
1111
the scope it's valid for.
1212
-->
1313

14-
Rust は今まで説明してきたルールを*生存期間*を使って強制します。
15-
生存期間とは、要するにプログラム中のスコープの名前です。
16-
リファレンスと、リファレンスを含むものとは、有効なスコープを示す生存期間でタグづけられています
14+
Rust は今まで説明してきたルールを*ライフタイム*を使って強制します。
15+
ライフタイムとは、要するにプログラム中のスコープの名前です。
16+
リファレンスと、リファレンスを含むものとは、有効なスコープを示すライフタイムでタグづけられています
1717

1818
<!--
1919
Within a function body, Rust generally doesn't let you explicitly name the
@@ -24,8 +24,8 @@ temporaries that you would otherwise have to write are often introduced to
2424
make your code Just Work.
2525
-->
2626

27-
通常、関数本体では、関係する生存期間の名前を明示することは求められません
28-
一般に、ローカルコンテキストにおいて生存期間を気にする必要はまずないからです
27+
通常、関数本体では、関係するライフタイムの名前を明示することは求められません
28+
一般に、ローカルコンテキストにおいてライフタイムを気にする必要はまずないからです
2929
Rust はすべての情報を持っていて、可能な限りすべてを最適にできます。
3030
省略可能な無名スコープや一時変数は、コードがきちんと動くように自動的に導入されます。
3131

@@ -37,10 +37,10 @@ to label scopes with lifetimes, and desugar the examples from the start of
3737
this chapter.
3838
-->
3939

40-
しかし関数の境界を超えると、生存期間について気にしなくてはいけなくなります
41-
生存期間は`'a``'static` などアポストロフィーつきの名前を持ちます。
42-
生存期間の世界に足を踏み入れるために
43-
スコープに生存期間のラベルをつけられるとして、この章の最初のサンプルコードを
40+
しかし関数の境界を超えると、ライフタイムについて気にしなくてはいけなくなります
41+
ライフタイムは`'a``'static` などアポストロフィーつきの名前を持ちます。
42+
ライフタイムの世界に足を踏み入れるために
43+
スコープにライフタイムのラベルをつけられるとして、この章の最初のサンプルコードを
4444
「脱糖 (desugar)」してみましょう。
4545

4646
<!--
@@ -50,9 +50,9 @@ explicitly is *extremely noisy*. All Rust code relies on aggressive inference
5050
and elision of "obvious" things.
5151
-->
5252

53-
もともとのサンプルコードは、スコープと生存期間について
53+
もともとのサンプルコードは、スコープとライフタイムについて
5454
果糖がたくさん含まれたコーンシロップのように*強烈に*甘い書き方でした。
55-
(訳注:生存期間を省略できることは syntax sugar で、元のコードは大量の syntax sugar を使っているので、「甘い」と言っている)
55+
(訳注:ライフタイムを省略できることは syntax sugar で、元のコードは大量の syntax sugar を使っているので、「甘い」と言っている)
5656
なぜなら、すべてを明示的に書くのは*極めて煩わしい*からです。
5757
Rust のコードは、積極的な推論と「明らかな」ことの省略とを当てにしています。
5858

@@ -79,15 +79,15 @@ The borrow checker always tries to minimize the extent of a lifetime, so it will
7979
likely desugar to the following:
8080
-->
8181

82-
ボローチェッカーは、生存期間の長さを最小にしようとするので
82+
ボローチェッカーは、ライフタイムの長さを最小にしようとするので
8383
これは次のように脱糖されるでしょう。
8484

8585
```rust,ignore
8686
// `'a: {` と `&'b x` は正当な構文ではないことに注意してください!
8787
'a: {
8888
let x: i32 = 0;
8989
'b: {
90-
// ここで使用される生存期間は 'b です。なぜなら 'b で十分だからです。
90+
// ここで使用されるライフタイムは 'b です。なぜなら 'b で十分だからです。
9191
let y: &'b i32 = &'b x;
9292
'c: {
9393
// 'c も同様
@@ -109,7 +109,7 @@ Actually passing references to outer scopes will cause Rust to infer
109109
a larger lifetime:
110110
-->
111111

112-
リファレンスを外のスコープに返す場合は、Rust はより大きい生存期間を推論することになります
112+
リファレンスを外のスコープに返す場合は、Rust はより大きいライフタイムを推論することになります
113113

114114
```rust
115115
let x = 0;
@@ -177,7 +177,7 @@ to the u32 originated in, or somewhere *even earlier*. That's a bit of a tall
177177
order.
178178
-->
179179

180-
`as_str` のシグネチャは、*ある*生存期間を持つ u32 へのリファレンスをとり、
180+
`as_str` のシグネチャは、*ある*ライフタイムを持つ u32 へのリファレンスをとり、
181181
そのリファレンスと*同じ長さだけ*生きる str へのリファレンスを生成することを約束します。
182182
このシグネチャが問題になるかもしれないと、すでに話しました。
183183
このシグネチャは、引数の u32 を指すリファレンスが生成されたスコープか、もしくは*それより以前のスコープ*で、str を探すことを意味します。これはなかなか難しい注文です。
@@ -194,7 +194,7 @@ up in our face.
194194
-->
195195

196196
それから文字列 `s` を計算し、そのリファレンスを返します。
197-
この関数は、返されるリファレンスが `'a` より長生きすることを約束しているので、このリファレンスの生存期間として `'a` を使うことを推論します。
197+
この関数は、返されるリファレンスが `'a` より長生きすることを約束しているので、このリファレンスのライフタイムとして `'a` を使うことを推論します。
198198
残念なことに、`s` はスコープ `'b` の中で定義されているので、
199199
この推論が妥当になるためには、`'b``'a` を含んでいなくてはなりません。
200200
ところがこれは明らかに成立しません。`'a` はこの関数呼び出しそものを含んでいるからです。
@@ -347,8 +347,8 @@ correct with respect to Rust's *true* semantics are rejected because lifetimes
347347
are too dumb.
348348
-->
349349

350-
ここでは、生存期間をチェックするシステムは、私たちが維持したいリファレンスの意味論に比べて
350+
ここでは、ライフタイムをチェックするシステムは、私たちが維持したいリファレンスの意味論に比べて
351351
とても荒いことを見てきました。
352352
ほとんどの場合、*これで全く大丈夫*です。
353353
私たちが書いたコードをコンパイラに説明するために丸一日費やさなくてもいいからです。
354-
しかし、生存期間のチェックがとてもバカなために、Rust の*真の*意味論的には全く正しいプログラムでも拒否されることがあるのです。
354+
しかし、ライフタイムのチェックがとてもバカなために、Rust の*真の*意味論的には全く正しいプログラムでも拒否されることがあるのです。

src/ownership.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Ownership and Lifetimes
33
-->
44

5-
# 所有権と生存期間
5+
# 所有権とライフタイム
66

77
<!--
88
Ownership is the breakout feature of Rust. It allows Rust to be completely
@@ -112,6 +112,6 @@ referent and its owners.
112112
-->
113113

114114
単純なスコープ解析では、このバグは防げません。
115-
`data` の生存期間は十分に長いからです
115+
`data` のライフタイムは十分に長いからです
116116
問題は、その参照を保持している間に、参照先が*変わって*しまったことです。
117117
Rust でリファレンスを取ると、参照先とその所有者がフリーズされるのは、こういう理由なのです。

src/references.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Which obey the following rules:
4545
* A mutable reference cannot be aliased
4646
-->
4747

48-
* リファレンスの生存期間が、参照先の生存期間より長くなることはできません
48+
* リファレンスのライフタイムが、参照先のライフタイムより長くなることはできません
4949
* 可変リファレンスは、別名を持つことができません。
5050

5151
<!--
@@ -208,7 +208,7 @@ Note: Liveness is not the same thing as a *lifetime*, which will be explained
208208
in detail in the next section of this chapter.
209209
-->
210210

211-
生存性 (liveness) は、この章の次の節でで詳しく説明する *生存期間 (lifetime)* とは違うことに注意してください。
211+
生存性 (liveness) は、この章の次の節でで詳しく説明する *ライフタイム (lifetime)* とは違うことに注意してください。
212212

213213
<!--
214214
Roughly, a reference is *live* at some point in a program if it can be

0 commit comments

Comments
 (0)