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

是否有完整的Scala模式匹配可能性规范?

发布时间:2020-12-16 18:21:53 所属栏目:安全 来源:网络整理
导读:是否有完整的 Scala模式匹配可能性规范? 我无法修复以下代码: something match { case e @ (sae: ServerApiException if sae.statusCode == 401 | _: UnauthorizedException) = { doSomething(e) } ... } (它不在2.8.1中编译.) 解决方法 我不确定我会用这
是否有完整的 Scala模式匹配可能性规范?

我无法修复以下代码:

something match {
    case e @ (sae: ServerApiException if sae.statusCode == 401 | _: UnauthorizedException) => {
      doSomething(e)
    }
    ...
  }

(它不在2.8.1中编译.)

解决方法

我不确定我会用这种方式编写代码;它很难遵循(除了不以原始形式工作).

我宁愿选择类似的东西

def doSomething(e: Exception) = { /* whatever */ }
something match {
  case sae: ServerApiException if (sae.statusCode == 401) => doSomething(sae)
  case ue: UnauthorizedException => doSomething(ue)
}

避免重复的代码.或者你可以使用选项:

(something match {
  case sae: ServerApiException if (sae.statusCode == 401) => Some(sae)
  case ue: UnauthorizedException => Some(ue)
  case _ => None
}).foreach(e => /* do something */ )

如果你喜欢之后写这个方法.但我认为第一种方式可能是最清楚的.

(编辑:李大同)

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

    推荐文章
      热点阅读