Класс scala.Enumeration
абстрактный класс Enumeration extends Serializable
Конструкторы экземпляра
new Enumeration()
new Enumeration(initial: Int)
- initial
Начальное значение, с которого начинать счёт целых чисел для идентификации значений во время выполнения.
Члены типа
класс Val extends Value with Serializable
Класс, реализующий тип scala.Enumeration.Value. Этот класс может быть переопределён для изменения поведения именования и целочисленной идентификации перечисления.
- Атрибуты
- protected
- Аннотации
- @SerialVersionUID()
абстрактный класс Value extends Ordered[Value] with Serializable
Тип перечисляемых значений.
- Аннотации
- @SerialVersionUID()
класс ValueSet extends AbstractSet[Value] with SortedSet[Value] with SortedSetOps[Value, SortedSet, ValueSet] with StrictOptimizedIterableOps[Value, Set, ValueSet] with Serializable
Класс для наборов значений. Итерация по этому набору вернёт значения в порядке возрастания их идентификаторов.
Члены-значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае false.
- Определяющие классы
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов он возвращает значение хеша, соответствующее равенству значений: если две экземпляра типа значения сравниваются как true, то ## будет возвращать одинаковое значение хеша для каждого из них. Для null возвращает хешкод, где null.hashCode вызывает NullPointerException.
- возвращает
значение хеша, согласованное с ==
- Определяющие классы
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из Enumeration в any2stringadd[Enumeration] в методе any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (Enumeration, B)
- Неявный
- Этот член добавлен неявным преобразованием из Enumeration в ArrowAssoc[Enumeration] в методе ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект получателя эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
final def Value(i: Int, name: String): Value
Создает новое значение, часть этой перечисления, называемое name и идентифицируемое целым числом i.
- i
Целое число, которое идентифицирует это значение во время выполнения. Оно должно быть уникальным среди всех значений перечисления.
- name
Читаемое человеком имя этого значения.
- возвращает
Новое значение с предоставленным идентификатором
iи именемname.
- Атрибуты
- protected
final def Value(name: String): Value
Создает новое значение, часть этого перечисления, называемое name.
- name
Читаемое человеком имя этого значения.
- возвращает
Новое значение, называемое
name.
- Атрибуты
- protected
final def Value(i: Int): Value
Создает новое значение, часть этого перечисления, идентифицируемое целым числом i.
- i
Целое число, которое идентифицирует это значение во время выполнения. Оно должно быть уникальным среди всех значений перечисления.
- возвращает
Новое значение, идентифицируемое
i.
- Атрибуты
- protected
final def Value: Value
Создает новое значение, часть этого перечисления.
- Атрибуты
- protected
final def apply(x: Int): Value
final def asInstanceOf[T0]: T0
Преобразование объекта получателя к типу T0.
Обратите внимание, что успех преобразования во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] нет. В последнем примере, поскольку тип аргумента стирается на этапе компиляции, невозможно проверить, соответствуют ли содержимое списка запрошенному типу.
- возвращает
объект получателя.
- Определяющие классы
- Any
- Исключения
ClassCastException, если объект получателя не является экземпляром стирания типаT0.
def clone(): AnyRef
Создайте копию объекта-приёмника.
По умолчанию реализация метода clone зависит от платформы.
- returns
копия объекта-приёмника.
def ensuring(cond: (Enumeration) => Boolean, msg: => Any): Enumeration
- Неявный
- Этот член добавлен неявным преобразованием из Enumeration в Ensuring[Enumeration] с помощью метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
def ensuring(cond: (Enumeration) => Boolean): Enumeration
- Неявный
- Этот член добавлен неявным преобразованием из Enumeration в Ensuring[Enumeration] с помощью метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Enumeration
- Неявный
- Этот член добавлен неявным преобразованием из Enumeration в Ensuring[Enumeration] с помощью метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
def ensuring(cond: Boolean): Enumeration
- Неявный
- Этот член добавлен неявным преобразованием из Enumeration в Ensuring[Enumeration] с помощью метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-приёмник (this).
Метод eq реализует отношение эквивалентности на не-null экземплярах AnyRef, и имеет три дополнительных свойства:
-
Он согласован: для любых не-null экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-null экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно обеспечить согласованность их поведения с равенством ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и они должны иметь одинаковое значение хеширования (o1.hashCode == o2.hashCode).
- returns
trueесли аргумент является ссылкой на объект-приёмник;falseв противном случае.
- Классы-определения
- AnyRef
def equals(arg0: AnyRef): Boolean
Метод равенства для типов ссылок. Реализация по умолчанию делегирует вызов методу eq.
См. также equals в scala.Any.
- returns
trueесли объект-приёмник эквивалентен аргументу;falseв противном случае.
- Классы-определения
- AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-приёмника, когда к объекту больше нет ссылок.
Подробности о том, когда и как вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой format. Строки форматирования аналогичны тем, что используются в String.format (@см. java.lang.String.format).
- Неявное
- Этот член добавлен с помощью неявного преобразования из Enumeration в StringFormat[Enumeration] с помощью метода StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- возвращает
объект класса, соответствующий типу получателя во время выполнения.
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- возвращает
значение хэш-кода для этого объекта.
final def isInstanceOf[T0]: Boolean
Проверка, является ли динамический тип объекта получателя T0.
Обратите внимание, что результат проверки модулируется семантикой стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, так как аргумент типа стирается во время компиляции, проверить, соответствуют ли элементы списка заданному типу, невозможно.
- возвращает
trueесли объект получателя является экземпляром стираемого типаT0;falseв противном случае.
- Definition Classes
- Any
final def maxId: Int
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
trueесли аргумент не является ссылкой на объект получателя;falseв противном случае.
- Definition Classes
- AnyRef
var nextId: Int
Целое число, используемое для идентификации следующего созданного значения.
- Атрибуты
- protected
var nextName: Iterator[String]
Строка, используемая для именования следующего созданного значения.
- Атрибуты
- protected
final def notify(): Unit
Разбуждает один поток, ожидающий монитора объекта-получателя.
- Definition Classes
- AnyRef
- Аннотации
- @native()
- Примечание
не указан в SLS в качестве члена AnyRef
final def notifyAll(): Unit
Разбуждает все потоки, ожидающие монитора объекта-получателя.
- Definition Classes
- AnyRef
- Аннотации
- @native()
- Примечание
не указан в SLS в качестве члена AnyRef
def readResolve(): AnyRef
- Атрибуты
- protected
final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
def toString(): String
Имя этого перечисления.
- возвращает
строковое представление объекта.
- Definition Classes
- Enumeration → AnyRef → Any
def values: ValueSet
final def wait(): Unit
- Definition Classes
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Unit
final def withName(s: String): Value
Возвращает Value из этого Enumeration, чьё имя соответствует аргументу s. Имена определяются автоматически через рефлексию.
- s
имя
Enumeration- returns
ValueэтогоEnumeration, если его имя совпадает сs
- Исключения
NoSuchElementException, если в этомValueнетEnumerationс соответствующим именем
implicit object ValueOrdering extends Ordering[Value]
object ValueSet extends SpecificIterableFactory[Value, ValueSet] with java.io.Serializable
Объект-фабрика для наборов значений
- Annotations
- @SerialVersionUID()
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/Enumeration.html
Определяет конечный набор значений, специфичный для перечисления. Обычно эти значения перечисляют все возможные формы, которые может принимать что-либо, и предоставляют лёгкую альтернативу классам case.
Каждый вызов метода
Valueдобавляет новое уникальное значение в перечисление. Для доступа эти значения обычно определяются какvalчлены перечисления.Все значения в перечислении разделяют один общий, уникальный тип, определённый как
Valueчлен типа перечисления (Valueвыбран по стабильному идентификатору пути экземпляра перечисления).Значения НЕ ДОЛЖНЫ добавляться в перечисление после его создания; это делает перечисление небезопасным для потоков. Если значения добавляются в перечисление из нескольких потоков (несинхронизированным способом) после создания, поведение перечисления не определено.
// Define a new enumeration with a type alias and work with the full set of enumerated values object WeekDay extends Enumeration { type WeekDay = Value val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value } import WeekDay._ def isWorkingDay(d: WeekDay) = ! (d == Sat || d == Sun) WeekDay.values filter isWorkingDay foreach println // output: // Mon // Tue // Wed // Thu // Fri// Example of adding attributes to an enumeration by extending the Enumeration.Val class object Planet extends Enumeration { protected case class Val(mass: Double, radius: Double) extends super.Val { def surfaceGravity: Double = Planet.G * mass / (radius * radius) def surfaceWeight(otherMass: Double): Double = otherMass * surfaceGravity } import scala.language.implicitConversions implicit def valueToPlanetVal(x: Value): Val = x.asInstanceOf[Val] val G: Double = 6.67300E-11 val Mercury = Val(3.303e+23, 2.4397e6) val Venus = Val(4.869e+24, 6.0518e6) val Earth = Val(5.976e+24, 6.37814e6) val Mars = Val(6.421e+23, 3.3972e6) val Jupiter = Val(1.9e+27, 7.1492e7) val Saturn = Val(5.688e+26, 6.0268e7) val Uranus = Val(8.686e+25, 2.5559e7) val Neptune = Val(1.024e+26, 2.4746e7) } println(Planet.values.filter(_.radius > 7.0e6)) // output: // Planet.ValueSet(Jupiter, Saturn, Uranus, Neptune)