partial: PartialFunction[T, R] = ???
val fallback: T => R = ???
partial.orElse {
case x => fallback(x)
}
этот вариант даёт Partial как результат, хотя fallback «тотальная»
есть ли какие-нибудь подводные у такого варианта? почему в стандартной либе нет этого? implicit class PFExtension[-T, +R](pf: PartialFunction[T, R]) { def withDefault[T1 <: T, R1 >: R](f: T1 => R1): T1 => R1 = pf.applyOrElse(_, f) }
Обсуждают сегодня