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的枚举。