Неявное преобразование Scala Option - плохая практика или отсутствующая функция?
Я представлял свою модель данных как классы падежа, которые вводят значения, которые могут быть нулевыми, как Option.
case class Document(id: Long, title: String, subtitle: Option[String])
Теперь я пытаюсь создать экземпляр класса case:
Document(123, "The Title", "Subtitle") // Doesn't work
Но НОП! Это не работает, я должен обернуть необязательное значение в некоторые.
Document(123, "The Title", Some("Subtitle")) // Works
Scala очень умна в отношении типов в целом, но почему не очевидно, что жестко закодированный литерал или (любая строка в этом отношении) отличается от нуля / нет?
Я смог это исправить и сделать Scala «умнее», добавив это неявное преобразование
implicit def autoSome[T](any:T) = Some(any)
Document(123, "The Title", "Subtitle") // Now it works!
Вопрос: я единственный, кто должен обеспечивать неявное преобразование T -> Some (T) из коробки? Или есть какие-то ошибки, о которых мне не известно, что по умолчанию они так широко распространены?