Option getOrElse Typenkonfliktfehler

Warum löst dieser Code in Scala 2.9.2 einen Typenkonfliktfehler aus? das habe ich erwartetgetOrElse Gibt den Typ zurückString aber tatsächlich kehrt es zurückjava.io.Serializable:

scala> implicit def StringToOption(s:String) = Option(s)
StringToOption: (s: String)Option[String]

scala> "a".getOrElse("")
res0: String = a

scala> var opt:Option[String] = "a".getOrElse("")
<console>:8: error: type mismatch;
 found   : java.io.Serializable
 required: Option[String]
       var opt:Option[String] = "a".getOrElse("")
                                             ^

Das ist in Ordnung:

scala> implicit def StringToOption(s:String): Option[String] = Option(s)
StringToOption: (s: String)Option[String]

scala> var b:Option[String] = "a".getOrElse("") toString
b: Option[String] = Some(a)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage