Core concept

val name: Option[String] = Some("Ada")
name.map(_.toUpperCase).getOrElse("anon")
Advertisement

How it works

getOrElse, fold, orElse chain safely. Overuse of .get defeats purpose.

Advertisement

Trade-offs + gotchas

Everywhere Java uses null. API return values.