私は、私は構文は、特にフィルタの数としてクリーナーです内側の方法Scalaで/ elseを処理する場合、以下のような方法がありますか?
def onTrade {
def filterRemove = (filter: Boolean) => {
if (filter) {
processReject()
}
filter
}
val filters = List(
filterRemove(price > threshold),
filterRemove(volume > threshold),...
)
if (filters.filter(x => x == true).size > 0) return
}
を定義することによって、構文的に物事を改善することができたと思っ
def onTrade {
if (price > threshold) {
processReject()
return
}
if (volume > threshold) {
processReject()
return
}
.
.
.
}
を次のように取引に反応するイベント駆動システムを持っています増加する。私が持っている1つの問題は、最初の失敗に戻るのではなく、すべての単一のテストを通過することによってコードが不要なクロックサイクルを無駄にすることです。これは何かこれの周りの方法ですか?たとえば、filterRemoveがfalseを返すとすぐにonTradeを終了します。これを行うためのより表現力のある方法があるなら、私はそれも知っているのが大好きです。
は、この記事を見てください: http://debasishg.blogspot.com/2010/12/composable-domain-models-using-scalaz.html同じドメインと非常によく似た問題を扱っています。 – CheatEx