Handle Scala Option idiomatically
scala, scala-option
Solution
You could always just look at the Scaladoc for Option:
The most idiomatic way to use an scala.Option instance is to treat it as a collection or monad and use map,flatMap, filter, or foreach:
val name: Option[String] = request getParameter "name"
val upper = name map { _.trim } filter { _.length != 0 } map { _.toUpperCase }
println(upper getOrElse "")
And a bit later:
A less-idiomatic way to use scala.Option values is via pattern matching:
val nameMaybe = request getParameter "name"
nameMaybe match {
case Some(name) =>
println(name.trim.toUppercase)
case None =>
println("No name value")
}
Problem
What is the more idiomatic way to handle an `Option`, `map` / `getOrElse`, or `match`? ``` val x = option map { value => Math.cos(value) + Math.sin(value) } getOrElse { .5 } ``` or ``` val x = option match { case Some(value) => Math.cos(value) + Math.sin(value) case None => .5 } ```