簡體   English   中英

如果Scala的==調用等於,那么為什么不拋出異常?

[英]If Scala's == calls equals, why doesn't this throw an exception?

scala> val x:String = null
x: String = null

scala> x == "Hey"
res0: Boolean = false

這應該轉換為x.equals(“ Hey”)?

根據SLS:

6.3空值

null值的類型為scala.Null,因此與每種引用類型都兼容。 它表示參考值,該參考值引用特殊的“空”對象。 該對象實現類scala.AnyRef中的方法,如下所示:

•如果參數x也是“空”對象,則eq(x)和==(x)返回true。

•如果參數x也不是“ null”對象,則ne(x)和!=(x)返回true。

•isInstanceOf [T]始終返回false。

•asInstanceOf [T]返回類型T的默認值(請參見§4.2)。

•##返回“ 0”。 對“ null”對象的任何其他成員的引用將引發NullPointerException。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM