(´・ω・`)
定時で帰ると酒を飲んだあとにも時間がある。すごい。
長文書こうと思ったけどやめた。
細かすぎて伝わらないようで最高なtips。今日使ったscalazのメソッドを書く。
安全にmimByやmaxBy、あるいはtoIntを行う
case class HogeClass(id: Int, size: Int) val hs = List(Hoge(1,1), Hoge(2,2,), Hoge(3,3) hs.minBy(_.size) // Hoge(1,1) hs.maxBy(_.size) // Hoge(3,3) // 普通。でもListがemptyだとエラーに。 List().minBy(_.size) // エラー // モナディックな我々としては安全に操作したい所。TryやEitherで囲んでもいいけど冗長な記述がカッコ悪い。 // ラップした関数を作りたくなる。しかし、ScalazにはminimuByがある。 // これはOptionにくるんで返してくれる。 hs.minimumBy(_.size) // Option(Hoge(1,1)) List().minimumBy(_.size) // None // toIntも、parseIntがそれっぽく。 "1".toInt // 1 "hoge".toInt // エラー "hoge".parseInt.toOption // None "1".parseInt.toOption // Some(1)
ムズカシイ思想までいかず、Optionに魅力を感じているレベルでもScalazを使ってみる利点はあるなーと思う。単純にシンプルになるから。