使用 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"
}
我目前正在研究 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"
}