Имея дело с Option
в Scala, что я должен рассмотреть, чтобы решить, следует ли сопоставлять или паттен? Например, если у меня есть Option[MyClass]
, я могу справиться с этим следующими способами:Scala Опция: map vs Pattern Matching
def getList(myOptionInstance: Option[MyClass]): List[String] =
myOptionInstance map (...) getOrElse(List.empty[String])
или
def getList(myOptionInstance: Option[MyClass]): List[String] = myOptionInstance match {
case Some(mySomeInstance) => .....
case None => List.empty[String]
}
Когда я выбираю один над другим?
В ситуациях l Подобным образом я предпочитаю совпадение шаблонов, потому что он, как правило, более понятен и генерирует значительно более эффективный код (без 'Function1's '). –
Другая опция: 'myOptionInstance.toList flatMap (...)' – senia