我目前正在学习Scala,并且偶然发现了这个使用Cat的Validated数据类型的示例:
import cats.Semigroup
def parallelValidate[E: Semigroup, A, B, C](v1: Validated[E, A], v2: Validated[E, B])(f: (A, B) => C): Validated[E, C] =
(v1, v2) match {
case (Valid(a), Valid(b)) => Valid(f(a, b))
case (Valid(_), i @ Invalid(_)) => i
case (i @ Invalid(_), Valid(_)) => i
case (Invalid(e1), Invalid(e2)) => Invalid(Semigroup[E].combine(e1, e2))
}
我无法弄清楚这些@ Invalid(_)
代表什么,特别是@
似乎是i
与其他Validated
元素之间的运算符。 / p>
是什么意思? 在哪里可以找到ScalaDoc?