加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何一次匹配选项映射值?

发布时间:2020-12-16 18:43:39 所属栏目:安全 来源:网络整理
导读:是否有可能一次匹配某些键的Option [Map [String,String]](例如没有嵌套匹配)? 以下片段是现在的样子: val myOption:Option[Map[String,String]] = ...myOption match { case Some(params) = params get(key) match { case Some(value) = Ok(value) case N
是否有可能一次匹配某些键的Option [Map [String,String]](例如没有嵌套匹配)?

以下片段是现在的样子:

val myOption:Option[Map[String,String]] = ...
myOption match {
  case Some(params) =>
    params get(key) match {
      case Some(value) => Ok(value)
      case None => BadRequest
  case None => BadRequest     
}

解决方法

当然!只需 flatMap that sh*t!

def lookup(o: Option[Map[String,String]],k: String) =
  o.flatMap(_ get k).map(Ok(_)).getOrElse(BadRequest)

如果您使用的是Scala 2.10,则可以折叠选项:

def lookup(o: Option[Map[String,k: String) =
  o.flatMap(_ get k).fold(BadRequest)(Ok(_))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读