8

Optionmap/ getOrElse、またはを処理するより慣用的な方法は何matchですか?

val x = option map {
  value => Math.cos(value) + Math.sin(value)
} getOrElse {
  .5
}

また

val x = option match {
    case Some(value) => Math.cos(value) + Math.sin(value)
    case None => .5
}
4

4 に答える 4

11

Option の Scaladoc をいつでも見ることができます。

scala.Option インスタンスを使用する最も慣用的な方法は、それをコレクションまたはモナドとして扱い、map、flatMap、filter、または foreach を使用することです。

val name: Option[String] = request getParameter "name"
val upper = name map { _.trim } filter { _.length != 0 } map { _.toUpperCase }
println(upper getOrElse "")

そして少し後で:

scala.Option 値を使用する慣用的ではない方法は、パターン マッチングによるものです。

val nameMaybe = request getParameter "name"
nameMaybe match {
  case Some(name) =>
    println(name.trim.toUppercase)
  case None =>
    println("No name value")
}
于 2014-01-30T23:33:20.697 に答える