def flatten(l: List[_]): List[_] = {
def iflatten(l: List[_], ret: List[_]): List[_] = l match {
case Nil => ret
case h :: Nil =>
if( h.isInstanceOf[List[_]]) { iflatten(h, ret) }
else {
l.head :: ret
iflatten(l.tail, ret)
}
}
}
我知道有多种方法可以做到这一点,而且我不能 100% 确定我的方法是正确的。我想测试它,但我遇到的一个问题是在我调用的第二个 case 语句中:
... { iflatten(h, ret) }
我收到编译器错误:
error: type mismatch;
found : Unit
required: List[?]
我正在尝试解决这些类型问题,以了解有关类型系统的更多信息,因为它与我过去使用的不同。任何关于编译器为什么抱怨的建议将不胜感激。