在Scala中初始化Array [BigInt]与Array [Int]

时间:2014-06-15 12:20:42

标签: scala

为什么Int类型的数组的条目初始化为0,但是BigInt类型的数组的条目初始化为null?

val a = new Array[Int](1)
val b = new Array[BigInt](1)
println(a.mkString())
println(b.mkString())

产量

0
null

1 个答案:

答案 0 :(得分:5)

根据Int的scaladoc:

  

Int的实例不由底层运行时系统中的对象表示。

查看已编译的类文件,它确实显示Int的数组成为字节码中的int基元数组。并且int原语默认值为0。

0  iconst_1
1  newarray int [10]
3  astore_2 [a]
4  iconst_1
5  anewarray scala.math.BigInt [16]