多类型Scala解复用阵列

多类型Scala解复用阵列,scala,dynamic,types,scala-collections,Scala,Dynamic,Types,Scala Collections,让 如何获得 val a: Array[Any] = Array(1,"a",2,3.12,"c") 或者更一般地说 val aInt = a.collect { case i: Int => i } val aDouble = a.collect { case d: Double => d } val aString = a.collect { case s: String => s } 关于上次更新,您可以按运行时类分组并获取值: def filterByType[A

如何获得

val a: Array[Any] = Array(1,"a",2,3.12,"c")
或者更一般地说

val aInt = a.collect { case i: Int => i } 
val aDouble = a.collect { case d: Double => d }
val aString = a.collect { case s: String => s }
关于上次更新,您可以按运行时类分组并获取值:

def filterByType[A: scala.reflect.ClassTag](a: Array[Any]) =
  a.collect { case x: A => x }
或者更一般地说

val aInt = a.collect { case i: Int => i } 
val aDouble = a.collect { case d: Double => d }
val aString = a.collect { case s: String => s }
关于上次更新,您可以按运行时类分组并获取值:

def filterByType[A: scala.reflect.ClassTag](a: Array[Any]) =
  a.collect { case x: A => x }

@酶,预期的结果是什么?类型不是值,那么您想列出什么?类标签?非常感谢您的澄清。@Ezyme,预期的结果是什么?类型不是值,那么您想列出什么?类标签?非常感谢您的澄清。我对用例很好奇。你最终是如何需要一个数组的?使用语言。动态我对这个用例很好奇。您最终如何需要一个数组[任何]?使用language.dynamics