【緩募:play2.0】play scalaでOptionの値をチェーンさせた場合にどんどん入れ子になっていくのをキレイに書く方法 http://t.co/woTldrG8 関数で外出しすれば見やすくなるけどいけてない #play20 #playframework #scala
2012-04-14 15:50:10@rirakkumya (for (id2 <- Cache.get(id); result <- Cache.get(id2)) yield (Ok(result)) getOrElse (NotFound) とか・・
2012-04-14 15:52:22みんなfor式派か。Optionから戻って来た値をチェックして値によってBadRequestを返したい時とかだと、ごちゃごちゃしてきそう
2012-04-14 15:58:03@rirakkumya unfilteredのやつはちょっとそれに近いかもですね。とりあえずな時はEitherをyieldしちゃったりします。
2012-04-14 16:07:37@rirakkumya @pomu0325 @tototoshi 例題として仮に Cache.get(id2) が Null だったら NotFound じゃなくて BadRequest を返すケースでかっこよく書けるか考えて見ますね
2012-04-14 16:10:18@rirakkumya シンプルじゃない場合は、タプルに対するmatchですかね・・・と思ったら既に tototoshi さんが書かれてましたがw 一応修正版コメントしました
2012-04-14 16:11:11@rirakkumya エラーメッセージを変えたり…とかやろうとすると面倒そうですけど、単にBadRequestにしちゃうならそれアリですね。
2012-04-14 16:18:12Either 自体は for yield できないよね。 LeftProjection か RightProjection が できるだけで。 途中で分岐したい場合は上手く行かないんだよなー
2012-04-14 16:18:26