Skip to content

Commit f24defd

Browse files
committed
Update Unsized Types to 1.9
1 parent 66a52ad commit f24defd

File tree

2 files changed

+10
-19
lines changed

2 files changed

+10
-19
lines changed

1.9/ja/book/unsized-types.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,23 @@
1818
Rustはいくつかのそのような型を扱うことができますが、それらには以下の様な3つの制約が存在します:
1919

2020
<!-- 1. We can only manipulate an instance of an unsized type via a pointer. An ->
21-
<!-- `&[T]` works just fine, but a `[T]` does not. -->
21+
<!-- `&[T]` works fine, but a `[T]` does not. -->
2222
<!-- 2. Variables and arguments cannot have dynamically sized types. -->
2323
<!-- 3. Only the last field in a `struct` may have a dynamically sized type; the -->
2424
<!-- other fields must not. Enum variants must not have dynamically sized types as -->
2525
<!-- data. -->
26-
1. サイズ不定型はポインタを通してのみ操作することができます、たとえば、 `&[T]` は大丈夫ですが、 `[T]` はそうではありません。
26+
1. サイズ不定型はポインタを通してのみ操作することができます。
27+
たとえば、 `&[T]` は大丈夫ですが、 `[T]` はそうではありません。
2728
2. 変数や引数は動的なサイズを持つことはできません。
28-
3. `struct` の最後のフィールドのみ、動的なサイズを持つことが許されます、その他のフィールドはサイズが不定であってはなりません。
29+
3. `struct` の最後のフィールドのみ、動的なサイズを持つことが許されます。
30+
その他のフィールドはサイズが不定であってはなりません。
2931
また、Enumのバリアントはデータとして動的なサイズの型を持つ事はできません。
3032

3133
<!-- So why bother? Well, because `[T]` can only be used behind a pointer, if we -->
3234
<!-- didn’t have language support for unsized types, it would be impossible to write -->
3335
<!-- this: -->
34-
なぜこんなにややこしいのでしょうか? これは、`[T]` はポインタを通してのみ操作可能であるため、
35-
もし言語がサイズ不定型をサポートしていなかった場合、以下のようなコードを書くことは不可能となります:
36+
なぜこんなにややこしいのでしょうか?
37+
これは、`[T]` はポインタを通してのみ操作可能であるため、もし言語がサイズ不定型をサポートしていなかった場合、以下のようなコードを書くことは不可能となります:
3638

3739
```rust,ignore
3840
impl Foo for str {
@@ -57,7 +59,7 @@ impl Foo for &str {
5759
<!-- some point, there are some bugs to fix first) user-defined custom smart -->
5860
<!-- pointers, can use this `impl`. -->
5961
このように書いたとすると、このコードは [参照][ref] に対してのみ動作する用になり、他のポインタ型に対しては動作しないことになります。
60-
`imp for str` のように書くことで、すべてのポインタ、ユーザーの定義した独自のスマートポインタ(いくつかの点についてバグがあるので、それを先ずは直さなくてはなりませんが)もこの `impl` を利用可能になります。
62+
`imp for str` のように書くことで、すべてのポインタ、ユーザーの定義した独自のスマートポインタ(いくつかの点についてバグがあるので、それをまずは直さなくてはなりませんが)もこの `impl` を利用可能になります。
6163

6264
[ref]: references-and-borrowing.html
6365

@@ -76,5 +78,6 @@ struct Foo<T: ?Sized> {
7678
<!-- This `?`, read as “T may be `Sized`”, means that this bound is special: it -->
7779
<!-- lets us match more kinds, not less. It’s almost like every `T` implicitly has -->
7880
<!-- `T: Sized`, and the `?` undoes this default. -->
79-
`?` は 「Tは `Sized` かもしれない」と読みます、これは `?` が特別な境界: より小さいカインドとマッチするのではなく、より大きいカインドとマッチする ということを意味しています。
81+
`?` は 「Tは `Sized` かもしれない」と読みます。
82+
これは `?` が特別な境界: より小さいカインドとマッチするのではなく、より大きいカインドとマッチする ということを意味しています。
8083
これは、すべての `T` は暗黙的に `T : Sized` という制限がかけられていて、 `?` はその制限を解除するというようなものです。

diff-1.6.0..1.9.0/src/doc/book/unsized-types.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)