如何比较Scala枚举值类型?

时间:2015-10-20 15:50:58

标签: scala enums

考虑一下:

import packageName.doType._

class Worker
{
    def doSomething(doType: DoType): Unit =
    {
        if(doType == Default) //...
    }
}

相同文件

object DoType extends Enumeration
{
  type DoType = Value
  val Default, Special = Value
}

现在,只要我添加了if(doType == Default)行,我就会收到两个错误:

" =="无法解决而且突然之间的价值"在DoType中找不到 - .-

如何查看doType的实际值?我可以很容易地用(case-)类解决这个问题,但是我想用枚举来做。

编辑:我已经知道不能对类型进行模式匹配,因为它是def而不是val,仍然:你会怎么做呢? ?

1 个答案:

答案 0 :(得分:3)

问题出在这一行:

def doSomething(doType: DoType): Unit

恕我直言应该是:

def doSomething(doType: DoType.Value): Unit