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



我现在正在研究Scala和模式匹配。我有它背后的总体想法,可以让基础工作。我的问题是选项[]。是否可以在选项[]上使用模式匹配?

我想做的是制作一个小函数,它将接受一个option[String]参数,然后根据输入返回字符串(如果是字符串(,如果不是,则返回heads up。不过,我不太确定该如何处理,我已经尝试了一些方法,但要么失败,要么在下面的情况下永远不会出现第二种情况。

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"
}

最新更新