vam*_*olu 4 scala traversal either scala-cats
我试图转换成一个List[Either[Int]]一个来Either[List[Int]]使用traverse的cats.
错误
[error] StringCalculator.scala:19:15: value traverseU is not a member of List[String]
[error] numList.traverseU(x => {
Run Code Online (Sandbox Code Playgroud)
码
import cats.Semigroup
import cats.syntax.traverse._
import cats.implicits._
val numList = numbers.split(',').toList
numList.traverseU(x => {
try {
Right(x.toInt)
} catch {
case e: NumberFormatException => Left(0)
}
})
.fold(
x => {},
x => {}
)
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用traverse而不是traverseU.
配置(用于猫)
lazy val root = (project in file(".")).
settings(
inThisBuild(List(
organization := "com.example",
scalaVersion := "2.12.4",
scalacOptions += "-Ypartial-unification",
version := "0.1.0-SNAPSHOT"
)),
name := "Hello",
libraryDependencies += cats,
libraryDependencies += scalaTest % Test
)
Run Code Online (Sandbox Code Playgroud)