数组

数组是常规的 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 代码。