打印未初始化的阵列导致阵列大小,这是如何工作的?我正在遍历所有元素,所以我希望它抛出错误(编译或运行时),因为没有元素可以迭代。对我来说,这是导致容易出错的代码,但如果这是语言功能,那么在这种情况下是否有任何优势?
val array:Array[Int] = Array(5)
array.foreach(x => println(x))
Output : 5
更新: 令人困惑的是,Array(1,2,3)创建了一个包含元素1,2和3的数组,而Array(1)声明了包含1个元素的数组。
答案 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)