Это близко к тому, что запрашивается, но возвращает Option[Int]
во всех случаях:
def recFlatten(a: Any): Option[Int] =
a match {
case i: Int => Some(i)
case Some(x) => recFlatten(x)
case _ => None
}
Это вернет Some(i)
, если вложенное значение равно Int
или None
в противном случае.
Если вы действительно хотите вернуть Int
вместо Some(Int)
, то результат должен быть Any
, что усложнит последующую обработку:
def recFlatten(a: Any): Any =
a match {
case i: Int => i
case Some(x) => recFlatten(x)
case _ => None
}
Это вернет значение Int
или None
.