gpt4 book ai didi

Scala匹配/比较枚举

转载 作者:行者123 更新时间:2023-12-04 18:16:25 24 4
gpt4 key购买 nike

我有一个枚举,希望在actor的模式匹配中使用。我没有达到我的期望,现在,我怀疑我缺少一些简单的东西。

我的列举

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

然后,我从一个字符串创建一个Ops:
val op = Ops.valueOf("create")

在我的比赛中,我有:
case (Ops.Create, ...)

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

前者只是一个原子“创建”,而后者是Some(创建)

希望这是足够的信息,以便有人告诉我我所缺少的...

谢谢

最佳答案

如果您只是想获取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),...)

并且您具有内置的鲁棒性,可以将垃圾作为输入。

关于Scala匹配/比较枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2774213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com