数组
数组是常规的 JVM 数组,它们被视为不变的,并且具有特殊的构造函数和隐式转换。在没有 new 关键字的情况下构造它们。
val a = Array("element")
现在 a 的类型为 Array[String]。
val acs: Array[CharSequence] = a
//Error: type mismatch; found : Array[String] required: Array[CharSequence]
虽然 String 可以转换为 CharSequence,但 Array[String] 不能转换为 Array[CharSequence]。
你可以像其他系列一样使用 Array,这要归功于对 TraversableLike ArrayOps 的隐式转换:
val b: Array[Int] = a.map(_.length)
大多数 Scala 集合(TraversableOnce)都有一个 toArray 方法,它采用隐式 ClassTag 来构造结果数组:
List(0).toArray
//> res1: Array[Int] = Array(0)
这样可以很容易地在 Scala 代码中使用任何 TraversableOnce,然后将其传递给需要数组的 Java 代码。