私は現時点でScalaを学習しています。私がしたいことの一つは、早期復帰です。以前は無効な状態を取り除くだけで、誰もが読むことがはるかに簡単だと私は確信しています。さて、Scalaは関数型言語であり、カッティング計算が機能的でないことを読んだことがあるので、早期復帰に相当するトリックや関数型プログラミングがあるかどうか疑問に思っています。Scalaで早く復帰する方法
これは私が書いたコードですが、これはちょっとばかりの例で、私は特別なケースの特別なハックを探しているわけではありませんが、これに対処するための一般的なアドバイスをしています。
if (request.headers.get(session_header).isEmpty) {
BadRequest(session_not_set)
} else {
Ok(CartHelper.getCart(session, user))
}
今、何を私が行うことに誘惑だことは次のとおりです。
if (request.headers.get(session_header).isEmpty) {
BadRequest(session_not_set)
return;
}
Ok(CartHelper.getCart(session,user))
あなたは私のための任意のヒントを持っている場合は!
https://tpolecat.github.io/2014/05/09/return.html –
あなたが遭遇しているエラーは、匿名関数内で 'return'を使用しようとしているためです(Play' Action'内)、これは無名関数の代わりにメソッド全体から返されます。この場合、あなたが望むことをすることは不可能ですが、早期返品は良い習慣ではないので、上記の記事を読むことをお勧めします。 –
初期のリターンは、通常、 'if ... else ...'と置き換えると、サイズが大きく違ってしまいます。シンプルなソリューションは、大きなメソッドを別のメソッドに移動することです。 –