Skip to content

Commit fde8563

Browse files
authored
Fix exotic-sizes.md (#17)
* Obey to translation table * Translate "element" * Translate untranslated comments * Fix typo * Obey to translation table * Fix typo * Obey to translation table
1 parent 094290f commit fde8563

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

src/exotic-sizes.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ DST を指すポインタは結果的に、普通のポインタと DST を補
4141
There are two major DSTs exposed by the language: trait objects, and slices.
4242
-->
4343

44-
言語が提供する DST のうち重要なものが 2 つあります。trait オブジェクトとスライスです
44+
言語が提供する DST のうち重要なものが 2 つあります。トレイトオブジェクトとスライスです
4545

4646
<!--
4747
A trait object represents some type that implements the traits it specifies.
@@ -50,7 +50,7 @@ with a vtable containing all the information necessary to use the type.
5050
This is the information that completes a trait object: a pointer to its vtable.
5151
-->
5252

53-
Trait オブジェクトは、それが指す Trait を実装するある型を表現します
53+
トレイトオブジェクトは、それが指すトレイトを実装するある型を表現します
5454
元となった型は消去されますが、vtable とリフレクションとによって実行時にはその型を利用することができます。
5555
つまり、Trait オブジェクトを補完する情報とは vtable へのポインタとなります。
5656

@@ -60,8 +60,8 @@ A slice is simply a view into some contiguous storage -- typically an array or
6060
it points to.
6161
-->
6262

63-
スライスとは、単純にある連続したスペース(通常はアレイか `Vec`)のビューです。
64-
スライスを補完する情報とは、単にポインタが指すエレメントの数です
63+
スライスとは、単純にある連続したスペース(通常は配列か `Vec`)のビューです。
64+
スライスを補完する情報とは、単にポインタが指す要素の数です
6565

6666
<!--
6767
Structs can actually store a single DST directly as their last field, but this
@@ -105,8 +105,8 @@ struct Foo; // フィールドがない = サイズ 0
105105
// すべてのフィールドのサイズがない = サイズ 0
106106
struct Baz {
107107
foo: Foo,
108-
qux: (), // empty tuple has no size
109-
baz: [u8; 0], // empty array has no size
108+
qux: (), // 空のタプルにはサイズがありません
109+
baz: [u8; 0], // 空の配列にはサイズがありません
110110
}
111111
```
112112

@@ -120,7 +120,7 @@ type, so anything that loads it can just produce it from the aether -- which is
120120
also a no-op since it doesn't occupy any space.
121121
-->
122122

123-
サイズ 0 の型(ZST)は、当然ながら、それ自体ではほとんど価値があありません
123+
サイズ 0 の型(ZST)は、当然ながら、それ自体ではほとんど価値がありません
124124
しかし、多くの興味深いレイアウトの選択肢と組み合わせると、ZST が潜在的に役に立つことがいろいろな
125125
ケースで明らかになります。Rust は、ZST を生成したり保存したりするオペレーションが no-op に
126126
還元できることを理解しています。
@@ -139,7 +139,7 @@ the compiler.
139139

140140
究極の ZST の利用法として、Set と Map を考えてみましょう。
141141
`Map<Key, Value>` があるときに、`Set<Key>``Map<Key, UselessJunk>`
142-
簡単なラッパーとして実装することはよくあります
142+
簡単なラッパとして実装することはよくあります
143143
多くの言語では、UselessJunk のスペースを割り当てる必要があるでしょうし、
144144
結果的に使わない UselessJunk を保存したり読み込んだりする必要もあるでしょう。
145145
こういったことが不要であると示すのはコンパイラにとっては難しい仕事でしょう。
@@ -165,7 +165,7 @@ may return `nullptr` when a zero-sized allocation is requested, which is
165165
indistinguishable from out of memory.
166166
-->
167167

168-
安全なコードは ZST について心配する必要はありませんが、*危険な* コードは
168+
安全なコードは ZST について心配する必要はありませんが、*アンセーフな*コードは
169169
サイズ 0 の型を使った時の結果について注意しなくてはなりません。
170170
特に、ポインタのオフセットは no-op になることや、
171171
(Rust のデフォルトである jemalloc を含む)標準的なメモリアロケータは、
@@ -208,7 +208,7 @@ this would require providing a value of type `Void`.
208208
特定のケースでは絶対に失敗しないことがわかっているとします。
209209
`Result<T, Void>` を返すことで、この事実を型レベルで伝えることが可能です。
210210
Void 型の値を提供することはできないので、この Result は Err に*なり得ないと静的にわかります*
211-
そのため、この API の利用者は、自信を持って Result を unwrap することができます
211+
そのため、この API の利用者は、自信を持って Result をアンラップすることができます
212212

213213
<!--
214214
In principle, Rust can do some interesting analyses and optimizations based
@@ -236,7 +236,7 @@ the ability to be confident that certain situations are statically impossible.
236236
-->
237237

238238
ただし、どちらの例も現時点では動きません。
239-
つまり、Void 型による利点は、静的な解析によて、特定の状況が起こらないと確実に言えることだけです。
239+
つまり、Void 型による利点は、静的な解析によって、特定の状況が起こらないと確実に言えることだけです。
240240

241241
<!--
242242
One final subtle detail about empty types is that raw pointers to them are
@@ -246,10 +246,10 @@ type with `*const Void`, but this doesn't necessarily gain anything over using
246246
e.g. `*const ()`, which *is* safe to randomly dereference.
247247
-->
248248

249-
最後に細かいことを一つ。空の型を指す生のポインタを構成することは有効ですが
250-
それをデリファレンスすることは、意味がないので、未定義の挙動となります。
249+
最後に細かいことを一つ。空の型を指す生ポインタを構成することは有効ですが
250+
それを参照外しすることは、意味がないので、未定義の挙動となります。
251251
つまり、C における `void *` と同じような意味で `*const Void` を使うこと出来ますが、
252-
これは、*安全に*デリファレンスできる型(例えば `*const ()`)と比べて何も利点はありません。
252+
これは、*安全に*参照外しできる型(例えば `*const ()`)と比べて何も利点はありません。
253253

254254

255255
[dst-issue]: https://github.com/rust-lang/rust/issues/26403

0 commit comments

Comments
 (0)