From 7bedb7a574325cc7b0151854476625fd8bb67049 Mon Sep 17 00:00:00 2001 From: kdnakt Date: Thu, 13 Jul 2023 22:33:18 +0900 Subject: [PATCH 1/2] Translate untranslated lines in question_mark.md --- src/std/result/question_mark.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/std/result/question_mark.md b/src/std/result/question_mark.md index 66dbd2d1..8e4f6691 100644 --- a/src/std/result/question_mark.md +++ b/src/std/result/question_mark.md @@ -1,10 +1,17 @@ # `?` + +マッチを利用して結果をチェインするのは中々面倒です。 +幸いなことに、`?`マクロを使用すればイケてるコードに戻すことができます。 +`?`は`Result`を返す式の末尾で使い、マッチ式と等価です。 +`Err(err)`の分岐は`return Err(From::from(err))`という早期リターンに展開され、 +`Ok(ok)`の分岐は`ok`の式に展開されます。 ```rust,editable,ignore,mdbook-runnable mod checked { @@ -42,11 +49,14 @@ mod checked { } // Intermediate function + // 中間関数 fn op_(x: f64, y: f64) -> MathResult { // if `div` "fails", then `DivisionByZero` will be `return`ed + // `div`が"失敗"したら、`DivisionByZero`が`return`される。 let ratio = div(x, y)?; // if `ln` "fails", then `NonPositiveLogarithm` will be `return`ed + // もし`ln`が"失敗"したら、`NonPositiveLogarithm`が`return`される。 let ln = ln(ratio)?; sqrt(ln) @@ -72,7 +82,11 @@ fn main() { } ``` + +[公式ドキュメント][docs]をチェックすることをオススメします。 +`Result`型を扱う関数や`Result`型のメソッドが多く挙げられています。 [docs]: https://doc.rust-lang.org/std/result/index.html From 75f5ac605ab27f7ba61d924e632214785a7ebb26 Mon Sep 17 00:00:00 2001 From: kdnakt Date: Sat, 2 Sep 2023 23:28:35 +0900 Subject: [PATCH 2/2] fix translation --- src/std/result/question_mark.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/std/result/question_mark.md b/src/std/result/question_mark.md index 8e4f6691..dec380d2 100644 --- a/src/std/result/question_mark.md +++ b/src/std/result/question_mark.md @@ -9,9 +9,9 @@ branch expands to an `ok` expression. --> マッチを利用して結果をチェインするのは中々面倒です。 幸いなことに、`?`マクロを使用すればイケてるコードに戻すことができます。 -`?`は`Result`を返す式の末尾で使い、マッチ式と等価です。 -`Err(err)`の分岐は`return Err(From::from(err))`という早期リターンに展開され、 -`Ok(ok)`の分岐は`ok`の式に展開されます。 +`?`は`Result`を返す式の末尾で使います。 +`Err(err)`の分岐が`return Err(From::from(err))`という早期リターンに展開され、 +`Ok(ok)`の分岐が`ok`の式に展開されるようなマッチ式と等価です。 ```rust,editable,ignore,mdbook-runnable mod checked {