Scala Option implizite Konvertierung - Schlechte Vorgehensweise oder fehlende Funktion?

Ich habe mein Datenmodell als Fallklassen dargestellt, in die Werte eingegeben wurden, die als Option null sein können.

case class Document(id: Long, title: String, subtitle: Option[String])

Jetzt versuche ich die Case-Klasse zu instanziieren:

Document(123, "The Title", "Subtitle") // Doesn't work

Aber NOPE! Das funktioniert nicht, ich muss den optionalen Wert in ein Some packen.

Document(123, "The Title", Some("Subtitle")) // Works

Scala ist generell sehr clever in Bezug auf Typen, aber warum ist es nicht selbstverständlich, dass ein hartcodiertes Literal oder (in diesem Fall eine beliebige Zeichenfolge) ein anderes als null / None ist?

Ich konnte das beheben und Scala "schlauer" machen, indem ich diese implizite Konvertierung hinzufügte

implicit def autoSome[T](any:T) = Some(any)
Document(123, "The Title", "Subtitle") // Now it works!

Frage: Bin ich der einzige, den die Sprache implizit konvertieren sollte? T -> Some (T) out of the box? Oder gibt es irgendwelche Fallstricke, von denen ich nicht weiß, dass sie standardmäßig überall so weit verbreitet sind?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage