9
我已经迁移使用猫0.2〜0.6的猫一些代码,和我的代码是不是wroking了:如何使用笛卡尔产品| @ |与最新版本的猫?
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}
感谢
你需要导入的语法的应用性建设者。 cats.syntax.all._将做到这一点,不确定具体的进口 – melps
@meps谢谢它的工作原理! – Loic
使用'import cats.implicits._'更容易,那么你不需要搜索正确的'cats.std.x'或'cats.syntax.y'(你需要的具体内容就是'cats'。 syntax.cartesian._')。 –