如果你学习过 Java,就可以非常轻松地上手使用 Scala 数组

1. 定长数组

我们通过new关键字来进行数组实例化,并必须指定数组元素的具体数据类型。在初始化数组时,我们就可以指定数组的长度,这种情况我们称之为定义定长数组,Scala 当中使用Array来定义:

  1. val greetings = new Array[String](3)
  2. greetings(0) = "Hello" // 等价于 greetings.update(0, "Hello")
  3. greetings(1) = ", "
  4. greetings(2) = "world!\n"
  5. greetings.foreach(print) // 等价于 for(i <- 0.to(2)) print(greetings.apply(i))

:::danger 🌘 备注
————————

  • 之前我们提到过,使用val定义的变量不可修改,例如上面的greetings数组,但是对于数组中的元素,其实是可以被修改的,例如greetings(1) = "-"是有效的
  • 上面示例我们规定了greetings数组的元素类型必须为字符串类型,也就是说该数组不可以存储字符串以外的其他类型的数据。 :::

上述定义数组的方式有点繁琐,每个值都还需要进行赋值,并且元素类型必须为字符串。当然,Scala 还有最简单的定义数组的方式,并且数组元素可以多元化(下面示例数组就存储了两种类型数据,这种数组的定义方式和列表非常像),注意这里我们并没有使用new来实例化数组:

  1. val greetings = Array("Hello", 123)

2. 变长数组

在一些情况下,我们并不知道数组的长度,从而无法定义出定长的数组。这个时候我们定义一个变长数组,然后不断地向该数组中添加元素,在 Scala 中使用ArrayBuffer来定义变长数组:

  1. import scala.collection.mutable.ArrayBuffer
  2. var arr = ArrayBuffer[Int]()

3. 多维数组

Scala 中使用Array.ofDim来定义多维数组:

  1. val multiArr = Array.ofDim[Int](2, 3)