Transform a present value and skip a missing one.

For over an Option

OptionFor.scala
object Main {
  def main(args: Array[String]): Unit = {
    val n = 
    val maybe: Option[Int] = if (n > 0) Some(n) else None
    val result = for (v <- maybe) yield v * 2
    val value = result.getOrElse(0)

    println("hasValue=" + result.isDefined)
    println("value=" + value)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val n = 
    val maybe: Option[Int] = if (n > 0) Some(n) else None
    val result = for (v <- maybe) yield v * 2
    val value = result.getOrElse(0)

    println("hasValue=" + result.isDefined)
    println("value=" + value)
  }
}
option-for A `for` over an `Option` yields a new `Option`: it transforms the value inside a `Some` and leaves a `None` empty, like `map`.