我写了这段代码
def valid1() : Validated[List[String], Boolean] = {...}
def valid2() : Validated[List[String], Boolean] = {...}
def valid3() : Validated[List[String], Boolean] = {...}
def valid4() : Validated[List[String], Boolean] = {...}
val consolidated = valid1 |@| valid2 |@| valid3 |@| valid4
consolidated.map{_ && _ && _ && _} match {
case Valid(true) => // do something
case Invalid(errorList) => // do something
}
而不是|@|
在每个中间验证上进行并&&
在地图内部进行......我可以用更简单的方式编写它吗?我想单独尝试做|@|
然后&&
使代码看起来有点吓人。(抱歉我还不是绝地武士)