teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

Option型の説明してませんでした

2015/10/08 03:38

投稿

yuba
yuba

スコア5570

answer CHANGED
@@ -1,4 +1,6 @@
1
1
  いまモダンとされているエラー表現手法は、Either型やOption(OptionalとかMaybeとかとも)型を使った返し方ですね。
2
2
  Swift, Scalaのような最近の言語はこれらを基本にしていますし、JavaもJava8からOptionalを標準クラスライブラリに取り込み始めました。
3
3
 
4
- Either型は、成功した場合は戻り値を、失敗した場合は失敗原因を表現するオブジェクトを保持しているようなクラスです。そして、Either型データを扱うときには、もちろん「成功か失敗か」を判定するコードを自力で書いてもいいのですがもっとスマートな方法が提供されています。「成功した場合はその戻り値でこれをしろ」「失敗した場合はその原因によってこれをしろ」という処理を書いたラムダ式を渡せるのです。
4
+ Either型は、成功した場合は戻り値を、失敗した場合は失敗原因を表現するオブジェクトを保持しているようなクラスです。そして、Either型データを扱うときには、もちろん「成功か失敗か」を判定するコードを自力で書いてもいいのですがもっとスマートな方法が提供されています。「成功した場合はその戻り値でこれをしろ」「失敗した場合はその原因によってこれをしろ」という処理を書いたラムダ式を渡せるのです。
5
+
6
+ Option型は、失敗しても失敗原因は持っていないEither型だと思ってください。成功した場合のラムダ式だけ受け取れます。