我正在尝试如何找出并使用枚举作为地图作为Scala中的键。查看this question,我可以实例化地图,但是当我尝试更新地图时,会出现类型不匹配错误。这是怎么回事?
object MyEnums extends Enumeration {
type MyEnum = Value
val BOB, TED, JEN = Value
}
var mymap = scala.collection.mutable.Map[MyEnums.Value, Long]()
mymap += (MyEnums.JEN -> 100L)
抛出:
<console>:38: error: type mismatch;
found : (MyEnums.Value, Long)
required: (MyEnums.Value, Long)
mymap += (MyEnums.JEN -> 100L)
如果我做同样的事情,但使用例如字符串作为键类型,这可以按预期工作。
编辑:在spark-shell中使用scala而不是正常的scala repl时会出现这些问题。