Enum как ключ к изменяемой карте в Scala

Я пытаюсь понять, как работать с картами с перечислениями в качестве ключей в Scala. Глядя на этот вопрос, я могу создавать экземпляры карт, но при попытке обновить карту на месте я получаю ошибку несоответствия типов. Что здесь происходит?

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)

Если я делаю то же самое, но использую, например, строки в качестве типа ключа, это работает как ожидалось.

РЕДАКТИРОВАТЬ: Эти проблемы возникают при использовании Scala в Spark-Shell, а не обычного Scala Repl.

0 ответов

Другие вопросы по тегам