Scala中的数组初始化


115

我是Scala的新手,今天才开始学习。我想知道如何在Scala中初始化数组。

示例Java代码

String[] arr = { "Hello", "World" };

上面的Scala代码等效于什么?

Answers:



108

要初始化填充零的数组,可以使用:

> Array.fill[Byte](5)(0)
Array(0, 0, 0, 0, 0)

这等效于Java的new byte[5]


3
仅供参考,List作为等效的初始化程序List.fill(5)(0),甚至接受函数。List.fill(5)(myFunc())
cevaris


17

Vasil回答的附加内容:如果您具有作为Scala集合给出的值,则可以编写

val list = List(1,2,3,4,5)
val arr = Array[Int](list:_*)
println(arr.mkString)

但是通常toArray方法更方便:

val list = List(1,2,3,4,5)
val arr = list.toArray
println(arr.mkString)

15

如果您知道Array的长度,但不知道其内容,则可以使用

val length = 5
val temp = Array.ofDim[String](length)

如果要具有二维数组,但不知道其内容,则可以使用

val row = 5
val column = 3
val temp = Array.ofDim[String](row, column)

当然,您可以将String更改为其他类型。

如果您已经知道其内容,则可以使用

val temp = Array("a", "b")

10

声明多维数组的另一种方法:

Array.fill(4,3)("")

res3: Array[Array[String]] = Array(Array("", "", ""), Array("", "", ""),Array("", "", ""), Array("", "", ""))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.