首页 > 解决方案 > 使用 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 _ => ...
        }

标签: scalapattern-matching

解决方案


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

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

推荐阅读