Как определить перечисление с конкретными числовыми значениями в Scala - PullRequest
0 голосов
/ 19 марта 2019

Как я могу определить перечисление с конкретными числовыми значениями в Scala и иметь возможность получить список значений из типа?

Если я определяю перечисление с использованием типа Enumeration следующим образом:

object MyEnum extends Enumeration {

  type MyEnum = Value

  val A: Byte = -10

  val B: Byte = 0

  val C: Byte = 10
}

и попробуйте получить значения следующим образом:

val byteValues = MyEnum.values.toList.map(_.id.toByte)

тогда я получу пустую последовательность.

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Вы можете задать параметр для метода Value, чтобы установить перечисление на конкретное значение.Последующие вызовы Value без параметра приведут к следующему целому числу в последовательности

object MyEnum extends Enumeration {
  val A = Value(-1)
  val B, C = Value
}

Обновить следующее изменение на вопрос

Должно быть очевидно, как использовать мой ответ для решения обновленноговопрос, а вот код, на всякий случай

object MyEnum extends Enumeration {
  val A = Value(-10)
  val B = Value(0)
  val C = Value(10)
}
1 голос
/ 19 марта 2019

Правильный способ определения перечисления:

object MyEnum extends Enumeration {

  type MyEnum = Value

  val A = Value(-10)

  val B = Value(0)

  val C = Value(10)
}

тогда получение значений работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...