関数型プログラミングにおいて、Result型(英語: Result type)は、戻り値またはエラーコードを保持するモナディック型である。これは、例外処理に頼らないエラー処理の洗練された方法を提供する。失敗する可能性のある関数がResult型を返す場合、プログラマは結果にアクセスする前に、結果が成功であるか失敗であるかを確認することが強制される。これにより、プログラマがエラー処理を忘れる可能性が排除される。

例

Rust

Result型にはis_ok()メソッドとis_err()メソッドがある。

const CAT_FOUND: bool = true;

fn main() {
    let result = pet_cat();
    if result.is_ok() {
        println!("Great, we could pet the cat!");
    } else {
        println!("Oh no, we couldn't pet the cat!");
    }
}

fn pet_cat() -> Result<(), String> {
    if CAT_FOUND {
        Ok(())
    } else {
        Err(String::from("the cat is nowhere to be found"))
    }
}

脚注

  1. ↑ “Result · An Introduction to Elm”. guide.elm-lang.org. 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  2. ↑ “Data.Either”. hackage.haskell.org (2023年9月22日). 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  3. ↑ “Result - Kotlin Programming Language”. kotlinlang.org. 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  4. ↑ “Error Handling · OCaml Tutorials”. ocaml.org. 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  5. ↑ “std::result - Rust”. doc.rust-lang.org. 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  6. ↑ “stdlib: Add result module · rust-lang/rust@c1092fb”. github.com (2011年10月29日). 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  7. ↑ “Scala Standard Library 2.13.12 - scala.util.Either”. www.scala-lang.org. 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  8. ↑ “Result | Apple Developer Documentation”. developer.apple.com. 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。
  9. ↑ “std::expected - cppreference.com”. en.cppreference.com (2023年8月25日). 2023年10月9日時点のオリジナルよりアーカイブ。2023年10月9日閲覧。

関連項目

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS C40