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