scala - 使用 Option[Type] 进行 Scala 模式匹配
问题描述
我现在正在玩 Scala 和模式匹配。我有它背后的一般想法,并且可以让基础知识发挥作用。我的问题是选项 []。可以在 Option[] 上使用模式匹配吗?
我想要做的是制作一个小函数,它将接受一个 option[String] 参数,然后根据输入返回字符串,如果它是字符串,如果不是,则返回。我不太确定如何解决这个问题,我尝试了一些事情,但它要么失败,要么在下面的情况下永远不会遇到第二种情况。
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"
}
推荐阅读
- javascript - 警告:使用简单自动完成加载响应数据失败
- android - 如何实现 CheckBoxPreference 按钮的操作?
- python - 如何通过openCV从列表框中打开视频
- laravel - 来自 laravel 的响应未在 vue js 中正确记录
- python - 当我将一个数组复制到另一个数组时,为什么两个数组都被修改了?
- wordpress - 如何防止灵活的内容字段仅呈现最后一项?
- pandas - 按 ID 和日期聚合特定变量中具有相同值的行 - Pandas
- r - 合并后更改列名后缀
- timer - AVR 中使用的赫兹
- reactjs - 如何在按钮内启用关闭图标(React Icons)