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()
}