OptionにflatMapがあるのはしってたけど、たぶん使ったことなかった。
params.get("count")
が、Option[String]型としたときに・・・
前↓
params.get("count") match { case Some( count ) if count.matches("""\d+""") => Some( count.toInt ) case _ => None }
後↓
params.get("count").flatMap{ case count if count.matches("""\d+""") => Some( count.toInt ) }
これで使い方あってるのかな?
いや、この場合mapか?
params.get("count").map{ case count if count.matches("""\d+""") => count.toInt }
っていうか、この内容なら、もっと短く書けるんじゃね?
完全に自分のメモなので、全くまとまってなくてズミバゼン(・ω・`)意味不明だったらスルーしてください。
未だにモナドがちゃんと理解できてねぇ・・・