唐突に始まったScala Tipsコーナー、初学者が陥りがちなScalaのコードパターンを例にして、より良い方法を解説していきます。第一回はOption
クラスのmap()
メソッドを使おうというものです。知ってる人には今更ですが、Option#map(f)
は、レシーバーの値がSome(v)
の場合は、f
にv
を渡した結果のSome(f(v))
が、None
の場合はNone
が返ります。したがって、パターンマッチを使った以下のようなコードは
val result = exp1 match { case Some(v1) => val vx = //expression using v1 Some(vx) case None => None }
常に以下のような形に書き換えることができます。
val result = exp1.map{v1 => val vx = //expression using v1 vx }
より一般的なコードでは、flatMap()
を使う事が有用な事がありますが、それはまた今度。