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._')。 –