Spec-Zone.ru › Scala 2.12 Library

Класс scala.Enumeration

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

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

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

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

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

Тип "Я"
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
      }
      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)
Линейные надтипы
Известные подклассы

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

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 SortedSetLike[Value, 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 зависит от платформы.

возвращает

копию объекта-получателя.

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

не указано в SLS как член AnyRef

def ensuring(cond: (Перечисление) ⇒ Boolean, msg: ⇒ Любой): Перечисление

Неявный
Этот член добавляется неявным преобразованием из Перечисления в Ensuring[Перечисление] выполняемым методом Ensuring в scala.Predef.
Классы определения
Ensuring

def ensuring(cond: (Перечисление) ⇒ Boolean): Перечисление

Неявный
Этот член добавляется неявным преобразованием из Перечисления в Ensuring[Перечисление] выполняемым методом Ensuring в scala.Predef.
Классы определения
Ensuring

def ensuring(cond: Boolean, msg: ⇒ Любой): Перечисление

Неявный
Этот член добавляется неявным преобразованием из Перечисления в Ensuring[Перечисление] выполняемым методом Ensuring в scala.Predef.
Классы определения
Ensuring

def ensuring(cond: Boolean): Перечисление

Неявный
Этот член добавляется неявным преобразованием из Перечисления в Ensuring[Перечисление] выполняемым методом Ensuring в scala.Predef.
Классы определения
Ensuring

final def eq(arg0: AnyRef): Boolean

Проверяет, является ли аргумент (that) ссылкой на объект-приёмник (this).

Метод eq реализует отношение эквивалентности на не-нулевых экземплярах AnyRef, и обладает тремя дополнительными свойствами:

    Он согласован: для любых не-нулевых экземпляров x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false.Для любого не-нулевого экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false. null.eq(null) возвращает true.

При переопределении методов equals или hashCode важно обеспечить согласованность их поведения с равенством ссылок. Таким образом, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и они должны хешироваться к одному значению (o1.hashCode == o2.hashCode).

возвращает

true если аргумент является ссылкой на объект-приёмник; false в противном случае.

Классы определения
AnyRef

def equals(arg0: Любой): Boolean

Метод равенства для ссылочных типов. Реализация по умолчанию делегирует eq.

См. также equals в scala.Any.

возвращает

true если объект-приёмник эквивалентен аргументу; false в противном случае.

Классы определения
AnyRef → Любой

def finalize(): Unit

Вызывается сборщиком мусора для объекта-приёмника, когда больше нет ссылок на объект.

Детали того, когда и как вызывается метод finalize, а также взаимодействие finalize с нелокальными возвратами и исключениями, зависят от платформы.

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

не указано SLS как член AnyRef

def formatted(fmtstr: String): String

Возвращает строку, отформатированную согласно заданной строке format. Строки форматирования аналогичны String.format (@см. java.lang.String.format).

Неявный
Этот член добавляется неявным преобразованием из Перечисления в StringFormat[Перечисление] выполняемым методом StringFormat в scala.Predef.
Классы определения
StringFormat
Аннотации
@inline()

final def getClass(): Class[_]

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

возвращает

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

Классы определения
AnyRef → Любой
Аннотации
@native()

def hashCode(): Int

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

возвращает

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

Классы определения
AnyRef → Любой
Аннотации
@native()

final def isInstanceOf[T0]: Boolean

Проверить, является ли динамический тип объекта-получателя T0.

Обратите внимание, что результат проверки зависит от семантики стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, так как аргумент типа стирается во время компиляции, проверить, являются ли элементы списка указанного типа, невозможно.

returns

true если объект-получатель является экземпляром стирания типа T0; false в противном случае.

Definition Classes
Any

final def maxId: Int

final def ne(arg0: AnyRef): Boolean

Эквивалентно !(this eq that).

returns

true если аргумент не является ссылкой на объект-получатель; false в противном случае.

Definition Classes
AnyRef

var nextId: Int

Целое число, используемое для идентификации следующего созданного значения.

Attributes
protected

var nextName: Iterator[String]

Строка, используемая для именования следующего созданного значения.

Attributes
protected

final def notify(): Unit

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

Definition Classes
AnyRef
Annotations
@native()
Note

не указано в SLS как член AnyRef

final def notifyAll(): Unit

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

Definition Classes
AnyRef
Annotations
@native()
Note

не указано в SLS как член AnyRef

def readResolve(): AnyRef

Attributes
protected

final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef

def toString(): String

Название этой перечисления.

returns

строковое представление объекта.

Definition Classes
Enumeration → AnyRef → Any

def values: ValueSet

final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )

final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )

final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws( ... ) @native()

final def withName(s: String): Value

Возвращает значение из этого перечисления, имя которого совпадает с аргументом. Имена определяются автоматически с помощью рефлексии.

s

имя значения

returns

значение этого перечисления, если его имя совпадает с переданным

Exceptions thrown

NoSuchElementException, если значение с совпадающим именем отсутствует в этом перечислении

def →[B](y: B): (Enumeration, B)

Implicit
Этот член добавлен неявным преобразованием из Enumeration в ArrowAssoc[Enumeration] выполненным методом ArrowAssoc в scala.Predef.
Definition Classes
ArrowAssoc

объект ValueOrdering расширяет Ordering[Значение]

объект ValueSet расширяет Serializable

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/Enumeration.html

Spec-Zone.ru

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