运维开发网

数组 – 为什么单位数组保持为空?

运维开发网 https://www.qedev.com 2020-07-30 19:46 出处:网络 作者:运维开发网整理
Unit被指定为AnyVal的子类型(它的唯一值是()),为什么这可能: scala> val units = new Array[Unit](5) units: Array[Unit] = Array(null, null, null, null, null) 这只是REPL阵列打印机制中的错误/遗漏,还是有原因的? 我认为这是阵列初始化的问题/限制.对于原始值,数组被初始化为其默认值,由JVM
Unit被指定为AnyVal的子类型(它的唯一值是()),为什么这可能:

scala> val units = new Array[Unit](5)
units: Array[Unit] = Array(null, null, null, null, null)

这只是REPL阵列打印机制中的错误/遗漏,还是有原因的?

我认为这是阵列初始化的问题/限制.对于原始值,数组被初始化为其默认值,由JVM根据利用本机数组的Scala数组推测.

对于其他类型,该值将被包装到一个对象中,它们似乎被初始化为null.

如果你想要一个单元数组,你可能需要调用val units = Array.fill(5)(()).

0

精彩评论

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