模式匹配列表[Any]与嵌套列表Scala?

问题描述

我该如何实现? xs是列表[Any]。

def flatten(xs: List[Any]): List[Any] = {
    xs match {
        case x: List[Any] :: t => flatten(x) ::: flatten(t)
        case x :: t => x :: flatten(t)
        case Nil => Nil
    }
}

第一种情况无法正常工作。由于某些原因,我无法在列表x的开头输入类型。

解决方法

正如@Luis所提到的,使用List [Any]确实是个坏主意,但是您仍然想编写.alwaysTemplate,然后使用反射可以这样:

flatten