我想在斯卡拉使用alternative
和Either[A, B]
。替代
这就是我想出了:
scala> val x: Either[String, Int] = Left("Foo")
x: Either[String,Int] = Left(Foo)
scala> val y: Either[String, Int] = Right(5555)
y: Either[String,Int] = Right(5555)
scala> x.fold(_ => y, _ => x)
res1: Either[String,Int] = Right(5555)
只使用标准库时,这是惯用的做法?
我担心的是我会有相当数量的fold
's,因为我使用了超过2 Either
's。
我不知道你想acomplish但'x.left.flatMap(_ => y)等什么'似乎等价的,如果它满足你不能确定。 –