Разница между опцией (значением) и некоторым (значением)
Я новичок в scala!
Мой вопрос: если есть класс case, содержащий член
myItem:Option[String]
Когда я создаю класс, мне нужно обернуть содержимое строки в:
Option("some string")
ИЛИ
Some("some string")
Есть ли разница?
Спасибо!
Ответ 1
Если вы посмотрите в Scala sources, вы заметите, что Option(x) просто оценивает x и возвращает Some(x) on not -новый вход и None на вкладке null.
Я бы использовал Option(x), когда не уверен, что x может быть null или нет, и Some(x), когда 100% уверен, что x не null.
Еще одна вещь, которую следует учитывать, - это когда вы хотите создать необязательное значение, Some(x) создает больше кода, потому что вы должны явно указать тип значения:
val x: Option[String] = Some("asdasd")
//val x = Option("asdasd") // this is the same and shorter
Ответ 2
Option(x) в основном просто говорит if (x != null) Some(x) else None