Предполагается, что нулевое значение должно появляться только в этом строковом представлении.Как только вы получаете значение из массива, оно «распаковывается» в Unit
:
scala> val units = new Array[Unit](5)
units: Array[Unit] = Array(null, null, null, null, null)
scala> units(0)
// note: no result
Сравните с:
scala> val refs = new Array[AnyRef](5)
refs: Array[AnyRef] = Array(null, null, null, null, null)
scala> refs(0)
res0: AnyRef = null // we do get the null here
Аналогичное обсуждение было в этот вопрос с Nothing
вместо Unit
.