Scala数组

示例

数组是常规的JVM数组,但有一些变化,它们被视为不变的,并具有特殊的构造函数和隐式转换。不使用new关键字构造它们。

 val a = Array("element")

现在a具有类型Array[String]。

 val acs: Array[CharSequence] = a
 //错误:类型不匹配;找到:数组[String]必需:数组[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)

这样可以轻松地TraversableOnce在Scala代码中使用任何代码,然后将其传递给需要数组的Java代码。