验证了Scala Cats的`@`运算符

时间:2018-07-08 07:37:53

标签: scala scala-cats

我目前正在学习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?

0 个答案:

没有答案