我调用外部函数,作为回报有几个Either
. 说我有
val a = Right("hey")
val b = Right(2)
val c = Left("oops") .....
for{
x <- a.right
y <- b.right
z <- c.right
} yield(User(x,y,z))
但是说,如果z
是上面的Left。然后我想给它一个默认的字符串。即通过
for{
x <- a.right
y <- b.right
z <- c.right.getOrElse(Right("default String")).right
} yield(User(x,y,z))
这东西好脏。我怎样才能减少这个:c.right.getOrElse(Right("default String")).right
。Doingc.right.getOrElse("default")
不会作为map
on String 返回 IndexedSeq 起作用。