Spec-Zone.ru › Scala 2.13 Library

Класс scala.Enumeration

абстрактный класс Enumeration extends Serializable

Определяет конечный набор значений, специфичный для перечисления. Обычно эти значения перечисляют все возможные формы, которые может принимать что-либо, и предоставляют лёгкую альтернативу классам case.

Каждый вызов метода Value добавляет новое уникальное значение в перечисление. Для доступа эти значения обычно определяются как val члены перечисления.

Все значения в перечислении разделяют один общий, уникальный тип, определённый как Value член типа перечисления (Value выбран по стабильному идентификатору пути экземпляра перечисления).

Значения НЕ ДОЛЖНЫ добавляться в перечисление после его создания; это делает перечисление небезопасным для потоков. Если значения добавляются в перечисление из нескольких потоков (несинхронизированным способом) после создания, поведение перечисления не определено.

Self Type
Enumeration
Аннотации
@SerialVersionUID()
Исходный код
Enumeration.scala
Примеры:
  1. // 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
  2. ,
  3. // 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)
Линейные супертипы
java.io.Serializable, AnyRef, Any
Известные подклассы
RoundingMode

Конструкторы экземпляра

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

копия объекта-приёмника.

Атрибуты
protected[java.lang]
Классы-определения
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()
Примечание

не определён SLS как член AnyRef

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 и нелокальными возвратами и исключениями, зависят от платформы.

Атрибуты
protected[java.lang]
Классы-определения
AnyRef
Аннотации
@throws(classOf[java.lang.Throwable])
Примечание

не определён SLS как член AnyRef

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]

Возвращает представление класса объекта во время выполнения.

возвращает

объект класса, соответствующий типу получателя во время выполнения.

Definition Classes
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Метод hashCode для ссылочных типов. См. hashCode в scala.Any.

возвращает

значение хэш-кода для этого объекта.

Definition Classes
AnyRef → Any
Аннотации
@native()

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

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException]) @native()

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API