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