Any和_有什么区别

时间:2018-10-10 16:33:23

标签: scala

我目前正在学习Scala并解决99个问题  (http://aperiodic.net/phil/scala/s-99/)赋予P07(http://aperiodic.net/phil/scala/s-99/p07.scala)的解决方案,如下所示:

def flatten(list: List[Any]): List[Any] = list.flatMap {
  case ms: List[_] => flatten(ms)
  case e => List(e)
}

但是,当我将_更改为Any或以其他方式更改时,结果似乎没有什么不同。因此,我质疑区别是什么,为什么他们要这样做呢?

1 个答案:

答案 0 :(得分:1)

简而言之,Any是一个类,就像Java中的对象一样。 _就像一个通配符,用于缩写。在大多数情况下,它的工作原理非常相似,但是例如,当您考虑List[Any]时,会得到任何内容的列表,但是如果您有{{1 }},您会得到一个清单,其中不知道是什么,一无所获