-3
をゼロにするために割り当てられているオブジェクトの種類は何ですか、s
コードを以下に
scala> val s:String = null
s: String = null
//cannot check if instance is of type Null
scala> s.isInstanceOf[Null]
<console>:13: error: type Null cannot be used in a type pattern or isInstanceOf test
s.isInstanceOf[Null]
^
//s is no longer a String or Any or AnyRef
scala> s.isInstanceOf[String]
res2: Boolean = false
scala> s.isInstanceOf[AnyRef]
res4: Boolean = false
scala> s.isInstanceOf[Any]
res5: Boolean = false
scala> s.isInstanceOf[Object]
res11: Boolean = false
"nullはちょうどnullで、型はありません" - そうではありません。 'null'の型は' scala.Null'です。 'scala.Null'は参照型の* Bottom Type *なので、' scala.AnyRef'(* scala.AnyRef'を含む)のすべての*サブタイプのサブタイプです。だから、「ヌルは型を持たない」というステートメントは間違っています。実際には、 'null'は型だけでなく、すべての型*(または少なくともすべての参照型)を持ちます。 –
さて、isInstanceof [scala.null]のようにすると本当ですか? –