For-Comprehensions
For over an Option
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`.