Mira la Scala language specification, a saber 6.3 El valor nulo capítulo:
El valor nulo es de tipo scala.Null
, y es por tanto compatible con todas las referencias tipo. Denota un valor de referencia que hace referencia a un objeto especial "nulo". Este objeto implementa métodos de la clase scala.AnyRef
de la siguiente manera:
• eq(x)
y ==(x)
retorno cierto si el argumento x
es también el objeto “nulo”.
• ne(x)
y !=(x)
devuelve verdadero si el argumento x
no es también el objeto "nulo".
Esto significa que semánticamente cuando se compara con algo null
literal o null
literal con algo que en realidad se está refiriendo a un método de una clase especial scala.Null
. Trate null
literal como una abreviatura de esa clase.
Por supuesto, en el nivel de implementación está optimizado y ordinarionull
se utiliza.
Está confundiendo la abstracción con la implementación. En abstracto, uno puede llamar a los métodos sobre 'null', como' == '. La implementación en la JVM, obviamente, no invoca métodos en un puntero nulo. –