为什么map/filter ...不适用于Nothing?

soc*_*soc 3 arrays scala map nothing higher-order-functions

不是所有类型的子类型都不是吗?

scala> val array = new Array(5)
array: Array[Nothing] = Array(null, null, null, null, null)

scala> array.map(_ => 42)
<console>:9: error: value map is not a member of Array[Nothing]
       array.map(_ => 42)
             ^

scala> array.filter(_ != 42)
<console>:9: error: value filter is not a member of Array[Nothing]
       array.filter(_ != 42)
             ^
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这不起作用.

这是指定的,功能还是错误?

psp*_*psp 7

当你看到涉及没什么怪异的行为,这是因为类型推理算法的认为它插入本身没有什么,因为它的类型推断过程中引入的:如果没有人知道关于类型的变量则用任何与虚无界.一直以来,我对事物的名单上做,看看是否我可以介绍一个新的内部专用底型为宗旨,使用户级没有和推断级没什么不混杂,但它是一个非常雄心勃勃的任务.不过,我现在可能已经足够努力去尝试了.