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

Scala匹配/比较枚举

发布时间:2020-12-16 09:56:16 所属栏目:安全 来源:网络整理
导读:我有一个枚举,我想在一个actor的模式匹配中使用.我没有得到我期望的东西,现在,我怀疑我错过了一些简单的东西. 我的枚举, object Ops extends Enumeration { val Create = Value("create") val Delete = Value("delete")} 然后,我从String创建一个Ops: val o
我有一个枚举,我想在一个actor的模式匹配中使用.我没有得到我期望的东西,现在,我怀疑我错过了一些简单的东西.

我的枚举,

object Ops extends Enumeration {
  val Create = Value("create")
  val Delete = Value("delete")
}

然后,我从String创建一个Ops:

val op = Ops.valueOf("create")

在我的比赛中,我有:

case (Ops.Create,...)

但是Ops.Create似乎不等于ops.valueOf(“create”)

前者只是一个原子’创造’而后者是一些(创造)

希望这是足够的信息让别人告诉我我错过了什么……

谢谢

解决方法

如果您只是想获得Create的副本,那么您应该直接在代码中引用它:

val op = Ops.Create

但是如果你从字符串解析它,字符串可能包含垃圾,所以valueOf返回一个Option:

val op1 = Ops.valueOf("create")  // Some(Ops.Create)
val op2 = Ops.valueOf("delete")  // Some(Ops.Delete)
val op3 = Ops.valueOf("aljeaw")  // None

现在,在你的比赛中你可以随身携带Option [Ops.Value]并寻找:

case(Some(Ops.Create),...)

并且你有垃圾的内置鲁棒性作为输入.

(编辑:李大同)

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

    推荐文章
      热点阅读