我不知道什么是这里的(implicit ev: Null <:< A1)
的原因:为什么Option的orNull方法有这种多余的隐含参数?
sealed abstract class Option[+A] extends Product with Serializable {
def orNull[A1 >: A](implicit ev: Null <:< A1): A1 = this getOrElse null
...
}
岂不
def orNull[A]: A = this getOrElse null
足够考虑,它甚至不似乎与值类型的工作像
Option(1).orNull
但是
Option(1).getOrElse(null)
呢?
Option
的source code
'Option(1).getOrElse(null)'“有效”,但总体类型为Any,这不是一个非常有用的类型。 – 2011-03-15 18:09:23