2017-10-26 4 views
0

私は、arrorコードが避けるべきである反パターンであることを知っています。 このリンク: https://blog.codinghorror.com/flattening-arrow-code/Scalaの矢印コードを平滑化する方法

修正する方法はいくつかあります。しかし、Scalaには適用されないようです。特に、スカラでは "return"キーワードが推奨されないため、条件の一部が満たされない場合、メソッドの初めに早期に返りたいと思っています。

私はScalaで次のことを行うためのエレガントな方法はありますか?

def someFunction(): Try[MyDataType] = { 
    if(some condition not met){ 
    // exit function 
    } 
    // do my actual work 
} 
+1

すでにいくつかの関連する質問があるようです:https:// stackoverfl ow.com/questions/38833876/how-to-early-return-in-scala https://stackoverflow.com/questions/24435800/explicit-return-from-play-action –

答えて

0

あなたのコードの構造は、あなたがチャンクにカプセル化することができ、合理的なサイズの機能を持っているようなものであるならば、私は望ましい結果を達成するためにモナドフロー制御を使用することをお勧めします:

理解の関数の1つがLeftの値を返す(Eitherは正しく適切にバイアスされるようになります)

関連する問題