Scala Option Type

Working with Option for null safety

Option Basics

val some: Option[Int] = Some(5) # Option with value
val none: Option[Int] = None # Option without value

Getting Values

some.get # returns value (unsafe, may throw)
some.getOrElse(0) # returns value or default
none.getOrElse(0) # returns 0

Checking Values

some.isDefined # true if has value
none.isEmpty # true if None

Pattern Matching

some match {
    case Some(x) => println(x) # extract value
    case None => println("Empty")
}

Map and FlatMap

some.map(_ * 2) # Some(10)
none.map(_ * 2) # None
some.flatMap(x => Some(x * 2)) # flatten nested Options