Option

Il tipo "Option" e' un contenitore vuoto (None) o pieno (Some(valore)). Fornisce un'alternativa sicura all'uso del null e dovrebbe essere utilizzato al suo posto, quando possibile. Le "Option" sono "Collection" (di un solo oggetto) e sono impreziosite dalle operazioni per le collection!

Esempio:

var username: Option[String] = None
...
username = Some("foobar")

al posto di

var username: String = null
...
username = "foobar"

Uso degli operatori condizionali:

if (opt.isDefined)
  operate(opt.get)

opt foreach { value =>
  operate(value)
}

opt match {
  case Some(value) => operate(value)
  case None => defaultAction()
}