Scala打印未初始化的阵列

时间:2018-01-24 07:55:28

标签: arrays scala

打印未初始化的阵列导致阵列大小,这是如何工作的?我正在遍历所有元素,所以我希望它抛出错误(编译或运行时),因为没有元素可以迭代。对我来说,这是导致容易出错的代码,但如果这是语言功能,那么在这种情况下是否有任何优势?

val array:Array[Int] = Array(5)
array.foreach(x => println(x))

Output : 5

更新: 令人困惑的是,Array(1,2,3)创建了一个包含元素1,2和3的数组,而Array(1)声明了包含1个元素的数组。

2 个答案:

答案 0 :(得分:5)

Array(5)不是一个空的5元素数组;它是一个唯一元素为5的数组。您正在打印5

如果你想创建一个5元素的数组,那就是new Array(5)。默认情况下,此数组的元素将初始化为0,因此您可以使用该数组查看0 5次。

答案 1 :(得分:2)

如果您打算创建一个包含5个具有某些默认值的元素的数组,您可以执行以下操作:

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