Как использовать asRight для создания экземпляра Both с кошками

Я пытаюсь создать экземпляр Either, используя asRight в REPL:

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
                 ^

Что не так с кодом выше? Можно ли использовать asRight в REPL?


person Michael    schedule 11.03.2017    source источник


Ответы (1)


EitherIdOps, который включает в себя asRight и asLeft операций, был впервые представлен в 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)
person Michael Zajac    schedule 11.03.2017
comment
Большое спасибо ! Ты прав. Я использовал более раннюю версию. - person Michael; 11.03.2017