Tryクラスの機能を整理してみました。
Futureクラスの機能と比較してみるとモナド+エラー処理を行うクラスの作り方の相場が見えてきて面白いと思います。
基本機能
Tryを使う上で必須の基本機能として以下の4つのメソッドをピックアップしました。
- isFailure
- isSuccess
- get
- getOrElse
Tryの典型的な使い方はTryのサブクラスであるSuccess, Failureをmatch式で取り出す処理になるので、isFailure, isSucces, getの3つのメソッドを実際に使うことは多くはなさそうです。
汎用コンビネータ
"いつもの"コンビネータです。Tryはモナドなので、Scalaのモナドとして綺麗に動くようなコンビネータ群が提供されています。
- foreach
- flatMap
- map
- filter
- orElse
汎用コンテナ操作
これもモナド系の処理になりますが、Tryの入れ子を一つにまとめる(join演算)処理を行います。木構造に組織化した演算群全体の成功/失敗の総合結果をまとめたい時に有効です。
- flatten
エラー処理
Tryはエラー処理に関するメソッドが多数用意されています。他の分類にあるものでエラー処理にも分類できるものは併記してその旨を記述しています。
- isFailure(基本機能)
- isSuccess(基本機能)
- recoverWith
- recover
- failed
- transform
- toOption
- orElse(汎用コンビネータ)
諸元
- Scala 2.10.0-M7
0 件のコメント:
コメントを投稿