12

我已经将一些使用猫 0.2 的代码迁移到了猫 0.6,但我的代码不再工作了:

import cats.data.Validated
import cats.std.all._

val valid1: Validated[List[String], Int] = valid(1)
val valid2: Validated[List[String], Int] = valid(2)
(valid1 |@| valid2).map{_+_}

编译器说:

Error:(48, 6) value |@| is not a member of 

cats.data.Validated[List[String],Int]
(valid1 |@| valid2).map{_+_}
    ^

我在文档中没有找到任何与此相关的内容,我应该进行导入还是声明隐式或其他内容?

我已经设法使用product|@|但它不像它产生嵌套元组那样方便。假设我有 4 个经过验证可以组合:

  (valid1 product valid2 product valid3 product valid4)
    .map{case (((v1, v2), v3), v4) => v1 + v2 + v3 + v4}

谢谢

4

1 回答 1

5

正如@meps 在评论中所说,缺少导入是cats.syntax.all._

于 2016-06-17T08:50:45.530 回答