scala.PartialFunction condOpt を使おう
同僚に教えて貰った。
scala.PartialFunction condOpt を使おうに書いてあるサンプルを見るとわかる。
ポイントは
- match式を使っていて
- そのmatch式の戻り値の型がOption
- 先頭からmatchさせていったとき、一番最後以外のmatchした場合については、明示的にSomeに包んで返している
- なので最後は case _ => None というのがくる
つまりモチベーションとしては
- 毎回自ら明示的にSomeに包むの面倒
- case _ => Noneという定形コードうざい
PartialFunction.condOpt(code){
case SimpleLocale(language) => Lang(language, "")
case CountryLocale(language, country) => Lang(language, country)
}
// これの返り値は`Option[Lang]`になる!
とにかく、match書いてわざわざSomeで包んで、ないときはNoneっていうコードを書いていたらcondOptを思い出してあげてほしい:pray: