如果你学习过 Java,就可以非常轻松地上手使用 Scala 数组
1. 定长数组
我们通过new
关键字来进行数组实例化,并必须指定数组元素的具体数据类型。在初始化数组时,我们就可以指定数组的长度,这种情况我们称之为定义定长数组,Scala 当中使用Array
来定义:
val greetings = new Array[String](3)
greetings(0) = "Hello" // 等价于 greetings.update(0, "Hello")
greetings(1) = ", "
greetings(2) = "world!\n"
greetings.foreach(print) // 等价于 for(i <- 0.to(2)) print(greetings.apply(i))
:::danger
🌘 备注
————————
- 之前我们提到过,使用
val
定义的变量不可修改,例如上面的greetings
数组,但是对于数组中的元素,其实是可以被修改的,例如greetings(1) = "-"
是有效的 - 上面示例我们规定了
greetings
数组的元素类型必须为字符串类型,也就是说该数组不可以存储字符串以外的其他类型的数据。 :::
上述定义数组的方式有点繁琐,每个值都还需要进行赋值,并且元素类型必须为字符串。当然,Scala 还有最简单的定义数组的方式,并且数组元素可以多元化(下面示例数组就存储了两种类型数据,这种数组的定义方式和列表非常像),注意这里我们并没有使用new
来实例化数组:
val greetings = Array("Hello", 123)
2. 变长数组
在一些情况下,我们并不知道数组的长度,从而无法定义出定长的数组。这个时候我们定义一个变长数组,然后不断地向该数组中添加元素,在 Scala 中使用ArrayBuffer
来定义变长数组:
import scala.collection.mutable.ArrayBuffer
var arr = ArrayBuffer[Int]()
3. 多维数组
Scala 中使用Array.ofDim
来定义多维数组:
val multiArr = Array.ofDim[Int](2, 3)