[英]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.