2012年9月21日金曜日

Scala Tips / Scala 2.10味見(11) - Try(3) 機能の整理

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 件のコメント:

コメントを投稿