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)(()).
精彩评论