运维开发网

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

运维开发网 https://www.qedev.com 2020-07-17 17:54 出处:网络 作者:运维开发网整理
为什么Int类型的数组的条目初始化为0,但BigInt类型的数组的条目初始化为null? val a = new Array[Int](1) val b = new Array[BigInt](1) println(a.mkString()) println(b.mkString()) 产量 0 null 根据 Int的scaladoc: Instances of Int are not repr
为什么Int类型的数组的条目初始化为0,但BigInt类型的数组的条目初始化为null?

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

产量

0
null
根据 Int的scaladoc:

Instances of Int are not represented by an object in the underlying runtime system.

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

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

精彩评论

暂无评论...
验证码 换一张
取 消