Skip to content

Commit 9f798cb

Browse files
authored
Merge pull request #214 from zaneli/fix-typo
Fix typo and improve Japanese
2 parents f06ccdd + 86493ce commit 9f798cb

File tree

6 files changed

+16
-18
lines changed

6 files changed

+16
-18
lines changed

1.6/ja/book/choosing-your-guarantees.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ let x = RefCell::new(vec![1,2,3,4]);
373373
C++の `shared_ptr``Arc` と似ていますが、C++の場合、中身のデータは常にミュータブルです。
374374
C++と同じセマンティクスで使うためには、 `Arc<Mutex<T>>``Arc<RwLock<T>>``Arc<UnsafeCell<T>>` を使うべきです [^4]`UnsafeCell<T>` はどんなデータでも持つことができ、実行時のコストも掛かりませんが、それにアクセスするためには `unsafe` ブロックが必要というセル型です)。
375375
最後のものは、その使用がメモリをアンセーフにしないことを確信している場合にだけ使うべきです。
376-
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCall` を正当化するには十分ではありません。
376+
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCell` を正当化するには十分ではありません。
377377

378378
<!--[^4]: `Arc<UnsafeCell<T>>` actually won't compile since `UnsafeCell<T>` isn't `Send` or `Sync`, but we can wrap it in a type and implement `Send`/`Sync` for it manually to get `Arc<Wrapper<T>>` where `Wrapper` is `struct Wrapper<T>(UnsafeCell<T>)`.-->
379379
[^4]: `Arc<UnsafeCell<T>>``Send``Sync` ではないため、実際にはコンパイルできません。しかし、 `Arc<Wrapper<T>>` を得るために、手動でそれを `Send``Sync` を実装した型でラップすることができます。ここでの `Wrapper``struct Wrapper<T>(UnsafeCell<T>)` です。

1.6/ja/book/error-handling.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ Rustでは戻り値を使います。
116116
# // Guess a number between 1 and 10.
117117
# // If it matches the number we had in mind, return true. Else, return false.
118118
// 1から10までの数字を予想します。
119-
// もし予想した数字に一致したらtrueを返し、そうでなけれは、falseを返します
119+
// もし予想した数字に一致したらtrueを返し、そうでなければfalseを返します
120120
fn guess(n: i32) -> bool {
121121
if n < 1 || n > 10 {
122122
panic!("Invalid number: {}", n);
@@ -314,7 +314,7 @@ impl<T> Option<T> {
314314
> 訳注:
315315
>
316316
> called `Option::unwrap()` on a `None` value:<br/>
317-
> `None` な値に対して `Option:unwpal()` が呼ばれました
317+
> `None` な値に対して `Option:unwrap()` が呼ばれました
318318
319319
<!-- The `unwrap` method *abstracts away the case analysis*. This is precisely the thing -->
320320
<!-- that makes `unwrap` ergonomic to use. Unfortunately, that `panic!` means that -->
@@ -1178,7 +1178,7 @@ fn main() {
11781178
<!-- `map_err`. -->
11791179
このコードは、やや難解になってきました。
11801180
このようなコードを簡単に書けるようになるまでには、結構な量の練習が必要かもしれません。
1181-
こういうもの書くときは *型に導かれる* ようにします。
1181+
こういうものを書くときは *型に導かれる* ようにします。
11821182
`file_double` のリターン型を `Result<i32, String>` に変更したらすぐに、それに合ったコンビネータを探し始めるのです。
11831183
この例では `and_then`, `map`, `map_err` の、3種類のコンビネータだけを使いました。
11841184

@@ -1188,7 +1188,7 @@ fn main() {
11881188
<!-- Correspondingly, there are two calls to `and_then`. -->
11891189
`and_then` は、エラーを返すかもしれない処理同士を繋いでいくために使います。
11901190
ファイルを開いた後に、失敗するかもしれない処理が2つあります:
1191-
ファイルからの読み込む所と、内容を数値としてパースする所です。
1191+
ファイルから読み込む所と、内容を数値としてパースする所です。
11921192
これに対応して `and_then` も2回呼ばれています。
11931193

11941194
<!-- `map` is used to apply a function to the `Ok(...)` value of a `Result`. For -->
@@ -1855,7 +1855,7 @@ fn file_double<P: AsRef<Path>>(file_path: P) -> Result<i32, Box<Error>> {
18551855
<!-- automatic type conversion for us by calling `From::from` on the error value. -->
18561856
<!-- In particular, we converted errors to `Box<Error>`, which works, but the type -->
18571857
<!-- is opaque to callers. -->
1858-
最後の節では `try!` マクロの本当の定義を確認し、それが `From::from` をエラーの値に対して呼ぶことで、自動的な型変換をする様子を見ました。
1858+
前の節では `try!` マクロの本当の定義を確認し、それが `From::from` をエラーの値に対して呼ぶことで、自動的な型変換をする様子を見ました。
18591859
特にそこでは、エラーを `Box<Error>` に変換しました。
18601860
これはたしかに動きますが、呼び出し元にとって、型がオペークになってしまいました。
18611861

@@ -2162,11 +2162,11 @@ fn main() {
21622162
21632163
let matches = match opts.parse(&args[1..]) {
21642164
Ok(m) => { m }
2165-
Err(e) => { panic!(e.to_string()) }
2165+
Err(e) => { panic!(e.to_string()) }
21662166
};
21672167
if matches.opt_present("h") {
21682168
print_usage(&program, opts);
2169-
return;
2169+
return;
21702170
}
21712171
let data_path = args[1].clone();
21722172
let city = args[2].clone();

1.6/ja/book/ffi.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,6 @@ int32_t register_callback(void* callback_target, rust_callback callback) {
364364
}
365365

366366
void trigger_callback() {
367-
# // cb(cb_target, 7); // Will call callback(&rustObject, 7) in Rust
368367
cb(cb_target, 7); // Rustのcallback(&rustObject, 7)を呼び出す
369368
}
370369
```

1.9/ja/book/choosing-your-guarantees.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ let x = RefCell::new(vec![1,2,3,4]);
373373
C++の `shared_ptr``Arc` と似ていますが、C++の場合、中身のデータは常にミュータブルです。
374374
C++と同じセマンティクスで使うためには、 `Arc<Mutex<T>>``Arc<RwLock<T>>``Arc<UnsafeCell<T>>` を使うべきです [^4]`UnsafeCell<T>` はどんなデータでも持つことができ、実行時のコストも掛かりませんが、それにアクセスするためには `unsafe` ブロックが必要というセル型です)。
375375
最後のものは、その使用がメモリをアンセーフにしないことを確信している場合にだけ使うべきです。
376-
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCall` を正当化するには十分ではありません。
376+
次のことを覚えましょう。構造体に書き込むのはアトミックな作業ではなく、`vec.push()`のような多くの関数は内部でメモリの再割当てを行い、アンセーフな挙動を引き起こす可能性があります。そのため単純な操作であるということだけでは `UnsafeCell` を正当化するには十分ではありません。
377377

378378
<!--[^4]: `Arc<UnsafeCell<T>>` actually won't compile since `UnsafeCell<T>` isn't `Send` or `Sync`, but we can wrap it in a type and implement `Send`/`Sync` for it manually to get `Arc<Wrapper<T>>` where `Wrapper` is `struct Wrapper<T>(UnsafeCell<T>)`.-->
379379
[^4]: `Arc<UnsafeCell<T>>``Send``Sync` ではないため、実際にはコンパイルできません。しかし、 `Arc<Wrapper<T>>` を得るために、手動でそれを `Send``Sync` を実装した型でラップすることができます。ここでの `Wrapper``struct Wrapper<T>(UnsafeCell<T>)` です。

1.9/ja/book/error-handling.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ Rustでは戻り値を使います。
116116
# // Guess a number between 1 and 10.
117117
# // If it matches the number we had in mind, return true. Else, return false.
118118
// 1から10までの数字を予想します。
119-
// もし予想した数字に一致したらtrueを返し、そうでなけれは、falseを返します
119+
// もし予想した数字に一致したらtrueを返し、そうでなければfalseを返します
120120
fn guess(n: i32) -> bool {
121121
if n < 1 || n > 10 {
122122
panic!("Invalid number: {}", n);
@@ -314,7 +314,7 @@ impl<T> Option<T> {
314314
> 訳注:
315315
>
316316
> called `Option::unwrap()` on a `None` value:<br/>
317-
> `None` な値に対して `Option:unwpal()` が呼ばれました
317+
> `None` な値に対して `Option:unwrap()` が呼ばれました
318318
319319
<!-- The `unwrap` method *abstracts away the case analysis*. This is precisely the thing -->
320320
<!-- that makes `unwrap` ergonomic to use. Unfortunately, that `panic!` means that -->
@@ -1178,7 +1178,7 @@ fn main() {
11781178
<!-- `map_err`. -->
11791179
このコードは、やや難解になってきました。
11801180
このようなコードを簡単に書けるようになるまでには、結構な量の練習が必要かもしれません。
1181-
こういうもの書くときは *型に導かれる* ようにします。
1181+
こういうものを書くときは *型に導かれる* ようにします。
11821182
`file_double` のリターン型を `Result<i32, String>` に変更したらすぐに、それに合ったコンビネータを探し始めるのです。
11831183
この例では `and_then`, `map`, `map_err` の、3種類のコンビネータだけを使いました。
11841184

@@ -1188,7 +1188,7 @@ fn main() {
11881188
<!-- Correspondingly, there are two calls to `and_then`. -->
11891189
`and_then` は、エラーを返すかもしれない処理同士を繋いでいくために使います。
11901190
ファイルを開いた後に、失敗するかもしれない処理が2つあります:
1191-
ファイルからの読み込む所と、内容を数値としてパースする所です。
1191+
ファイルから読み込む所と、内容を数値としてパースする所です。
11921192
これに対応して `and_then` も2回呼ばれています。
11931193

11941194
<!-- `map` is used to apply a function to the `Ok(...)` value of a `Result`. For -->
@@ -1855,7 +1855,7 @@ fn file_double<P: AsRef<Path>>(file_path: P) -> Result<i32, Box<Error>> {
18551855
<!-- automatic type conversion for us by calling `From::from` on the error value. -->
18561856
<!-- In particular, we converted errors to `Box<Error>`, which works, but the type -->
18571857
<!-- is opaque to callers. -->
1858-
最後の節では `try!` マクロの本当の定義を確認し、それが `From::from` をエラーの値に対して呼ぶことで、自動的な型変換をする様子を見ました。
1858+
前の節では `try!` マクロの本当の定義を確認し、それが `From::from` をエラーの値に対して呼ぶことで、自動的な型変換をする様子を見ました。
18591859
特にそこでは、エラーを `Box<Error>` に変換しました。
18601860
これはたしかに動きますが、呼び出し元にとって、型がオペークになってしまいました。
18611861

@@ -2162,11 +2162,11 @@ fn main() {
21622162
21632163
let matches = match opts.parse(&args[1..]) {
21642164
Ok(m) => { m }
2165-
Err(e) => { panic!(e.to_string()) }
2165+
Err(e) => { panic!(e.to_string()) }
21662166
};
21672167
if matches.opt_present("h") {
21682168
print_usage(&program, opts);
2169-
return;
2169+
return;
21702170
}
21712171
let data_path = args[1].clone();
21722172
let city = args[2].clone();

1.9/ja/book/ffi.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,6 @@ int32_t register_callback(void* callback_target, rust_callback callback) {
364364
}
365365

366366
void trigger_callback() {
367-
# // cb(cb_target, 7); // Will call callback(&rustObject, 7) in Rust
368367
cb(cb_target, 7); // Rustのcallback(&rustObject, 7)を呼び出す
369368
}
370369
```

0 commit comments

Comments
 (0)