Scala 在模式匹配中找不到

Scala 在模式匹配中找不到,scala,Scala,为什么我不能进行模式匹配: class Gender extends Enumeration { val male, female, unknown = Value } object MyObj { def getGender(str: String) = str match { case "1" => Gender.male case "2" => Gender.female case _ => Gender.unknown } }

为什么我不能进行模式匹配:

class Gender extends Enumeration {
  val male, female, unknown = Value
}


object MyObj {
  def getGender(str: String) = str match {
    case "1" => Gender.male
    case "2" => Gender.female
    case _ => Gender.unknown
  }

}

未找到错误
:值Gender
Gender。男性要求
Gender
为值。如果
Gender
来自Java,那么
male
可以是类的静态成员,或者是Java枚举的元素。然而,在Scala上,如果
XXX
是一个类,那么
XXX.yyy
永远不会是一个值


也许您应该将
性别
定义为
对象
而不是

性别。男性
要求
性别
是一个值。如果
Gender
来自Java,那么
male
可以是类的静态成员,或者是Java枚举的元素。然而,在Scala上,如果
XXX
是一个类,那么
XXX.yyy
永远不会是一个值


也许你应该将
性别
定义为
对象
而不是

这个问题与模式匹配无关

片段的精简版本:

class Foo { 
    val bar = 1
}

Foo.bar
给出了错误:

error: not found: value Foo

因为
Foo
是一个类型,而不是一个值。

这个问题与模式匹配无关

片段的精简版本:

class Foo { 
    val bar = 1
}

Foo.bar
给出了错误:

error: not found: value Foo

因为
Foo
是一个类型,而不是一个值。

但我需要它是一个枚举。我该怎么办?直接用“对象”替换“类”这个词。我想你应该读一下Scaladoc的枚举。但我需要它是一个枚举。我该怎么办?直接用“对象”替换“类”这个词。我想你应该读一下Scaladoc的枚举。