我想测试,如果值是Throwable,如果是,我想打印一个错误消息
如果值不是Throwable,我想返回它。
我有这个代码,它给了我以下错误信息,当我悬停在"值"应该在最后一行返回:
Found: (value: Either[Throwable, A]) Required: A)
def throwAndPlayAgainOrGet[A](value: Either[Throwable, A]): A =
{
if(value.isLeft) println("error: " + value) + playAgain
value
}
我的问题:
我该怎么做呢?
你可以使用模式匹配:
def throwAndPlayAgainOrGet[A](value: Either[Throwable, A]): A = value match {
case Left(err) => {
println(err)
someDefaultAValue // or throw err
}
case Right(v) => v
}