Особенность scala.Singleton
final trait Singleton extends Any
Члены-значения конкретных типов
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- returns
trueесли !(this == that), в противном случае false.
- Definition Classes
- Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращает значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## для каждого из них будет возвращать одинаковое значение хэша. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.
- returns
значение хэша, согласованное с ==
- Definition Classes
- Any
def +(other: String): String
- Implicit
- Этот член добавлен неявным преобразованием из Singleton в any2stringadd[Singleton] при помощи метода any2stringadd в scala.Predef.
- Definition Classes
- any2stringadd
def ->[B](y: B): (Singleton, B)
- Implicit
- Этот член добавлен неявным преобразованием из Singleton в ArrowAssoc[Singleton] при помощи метода ArrowAssoc в scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
final def ==(arg0: Any): Boolean
Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- returns
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Definition Classes
- Any
final def asInstanceOf[T0]: T0
Приведение типа объекта-получателя к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] этого не сделает. В последнем примере, из-за того, что аргумент типа стёрт во время компиляции, невозможно проверить, являются ли элементы списка нужного типа.
- returns
объект-получатель.
- Definition Classes
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стирания типаT0.
def ensuring(cond: (Singleton) => Boolean, msg: => Any): Singleton
- Implicit
- Этот член добавлен неявным преобразованием из Singleton в Ensuring[Singleton] при помощи метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: (Singleton) => Boolean): Singleton
- Implicit
- Этот член добавлен неявным преобразованием из Singleton в Ensuring[Singleton] при помощи метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Singleton
- Implicit
- Этот член добавлен неявным преобразованием из Singleton в Ensuring[Singleton] при помощи метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean): Singleton
- Неявное
- Этот член добавлен неявно посредством преобразования из Singleton в Ensuring[Singleton] с помощью метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
def equals(arg0: Any): Boolean
Сравнивает текущий объект (this) с объектом-аргументом (that) на предмет эквивалентности.
Любое реализация этого метода должна быть отношением эквивалентности:
-
Он является рефлексивным: для любого экземпляра
x типа Any, x.equals(x) должно возвращать true.Он является симметричным: для любых экземпляров x и y типа Any, x.equals(y) должно возвращать true тогда и только тогда, когда y.equals(x) возвращает true.Он является транзитивным: для любых экземпляров x, y, и z типа Any если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должно возвращать true. Если вы переопределяете этот метод, вы должны убедиться, что ваша реализация остается отношением эквивалентности. Кроме того, при переопределении этого метода обычно необходимо переопределить hashCode, чтобы гарантировать, что объекты, которые являются "равными" (o1.equals(o2) возвращает true), имеют одинаковые хэш-коды (scala.Int). (o1.hashCode.equals(o2.hashCode)).
- возвращает
trueесли текущий объект эквивалентен аргументу;falseв противном случае.
- Классы-определения
- Any
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой format. Формат строк такой же, как в String.format (@see java.lang.String.format).
- Неявное
- Этот член добавлен неявно посредством преобразования из Singleton в StringFormat[Singleton] с помощью метода StringFormat в scala.Predef.
- Классы-определения
- StringFormat
- Аннотации
- @inline()
def hashCode(): Int
Вычисляет значение хэш-кода для объекта.
По умолчанию алгоритм хэширования зависит от платформы.
Обратите внимание, что для двух объектов допускается иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)), но при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true ), у них должны быть идентичные хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому, при переопределении этого метода, необходимо убедиться, что поведение согласуется с методом equals .
- возвращает
значение хэш-кода для этого объекта.
- Классы-определения
- Any
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип получаемого объекта T0.
Обратите внимание, что результат проверки зависит от стирания типов в Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за стирания типа аргумента во время компиляции невозможно проверить, относятся ли элементы списка к указанному типу.
- возвращает
trueесли получаемый объект является экземпляром стираемого типаT0;falseв противном случае.
- Классы-определения
- Any
def toString(): String
Возвращает строковое представление объекта.
По умолчанию представление зависит от платформы.
- возвращает
строковое представление объекта.
- Классы-определения
- Any
© 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/Singleton.html
Singletonиспользуется компилятором в качестве супертипа для типов одиночек. Это включает в себя литеральные типы, поскольку они также являются типами одиночек.scala> object A { val x = 42 } defined object A scala> implicitly[A.type <:< Singleton] res12: A.type <:< Singleton = generalized constraint scala> implicitly[A.x.type <:< Singleton] res13: A.x.type <:< Singleton = generalized constraint scala> implicitly[42 <:< Singleton] res14: 42 <:< Singleton = generalized constraint scala> implicitly[Int <:< Singleton] ^ error: Cannot prove that Int <:< Singleton.Singletonимеет особое значение, когда оно появляется в качестве верхнего ограничения формального параметра типа. Обычно, вывод типов в Scala расширяет типы одиночек до базового не-одиночного типа. Когда параметр типа имеет явное верхнее ограничениеSingleton, компилятор выводит тип одиночки.См. также SIP-23 о типах одиночек на основе литералов.