如何使用 `asRight` 创建带有猫的 Either 实例
How to use `asRight` to create Either instance with cats
我正在尝试在 REPL 中使用 asRight
创建 Either
的实例:
import cats._
import cats.data._
import cats.implicits._
scala> val x = "xxx".asRight
<console>:20: error: value asRight is not a member of String
val x = "xxx".asRight
^
scala> import cats.syntax.either._
import cats.syntax.either._
scala> val x = "xxx".asRight
<console>:23: error: value asRight is not a member of String
val x = "xxx".asRight
^
上面的代码有什么问题?是否可以在 REPL 中使用 asRight
?
EitherIdOps
包括 asRight
和 asLeft
ops 首次在 cats 0.9.0(撰写本文时的最新版本)中引入。您很可能使用的是早期版本。
scala> import cats._, implicits._
import cats._
import implicits._
scala> "xxx".asRight
res0: Either[Nothing,String] = Right(xxx)
scala> "xxx".asRight[Int]
res1: Either[Int,String] = Right(xxx)
我正在尝试在 REPL 中使用 asRight
创建 Either
的实例:
import cats._
import cats.data._
import cats.implicits._
scala> val x = "xxx".asRight
<console>:20: error: value asRight is not a member of String
val x = "xxx".asRight
^
scala> import cats.syntax.either._
import cats.syntax.either._
scala> val x = "xxx".asRight
<console>:23: error: value asRight is not a member of String
val x = "xxx".asRight
^
上面的代码有什么问题?是否可以在 REPL 中使用 asRight
?
EitherIdOps
包括 asRight
和 asLeft
ops 首次在 cats 0.9.0(撰写本文时的最新版本)中引入。您很可能使用的是早期版本。
scala> import cats._, implicits._
import cats._
import implicits._
scala> "xxx".asRight
res0: Either[Nothing,String] = Right(xxx)
scala> "xxx".asRight[Int]
res1: Either[Int,String] = Right(xxx)