使用 Option[Type] 的 Scala 模式匹配

Scala Pattern Matching using Option[Type]

我目前正在研究 Scala 和模式匹配。我有它背后的总体思路,可以使基础知识发挥作用。我的问题是 Option[]。可以在 Option[]'s?

上使用模式匹配

我想做的是做一个小函数,它将接受一个选项 [String] 参数,然后根据输入 return 字符串,如果它是一个字符串,如果不是,则提示。不过,我不太确定如何解决这个问题,我已经尝试了一些方法,但它要么失败了,要么在下面的情况下永远不会遇到第二种情况。

def getString(someString: Option[String]): String =
        someString match {
          case s: Option[String] => someString //also tried things like case: String => ...
          case _ => s"no string entered" //and things like case _ => ...
        }

这是实现您的功能的最简单方法:

def getString(someString: Option[String]): String =
  someString.getOrElse("no string entered")

如果你想使用 match 它看起来像这样:

def getString(someString: Option[String]): String =
  someString match {
    case Some(s) => s
    case _ => "no string entered"
  }