Spec-Zone.ru › Scala 2.12 Library

Класс scala.Nothing

абстрактный финальный класс Nothing extends Any

Nothing является - вместе с scala.Null - на самом дне иерархии типов Scala.

Nothing является подтипом любого другого типа (включая scala.Null); экземпляров этого типа не существует. Хотя тип Nothing необитаем, он тем не менее полезен в нескольких аспектах. Например, библиотека Scala определяет значение scala.collection.immutable.Nil типа List[Nothing]. Поскольку списки ковариантны в Scala, это делает scala.collection.immutable.Nil экземпляром List[T], для любого элемента типа T.

Еще одно применение Nothing - это тип возвращаемого значения для методов, которые никогда не возвращаются нормально. Одним из примеров является метод error в scala.sys, который всегда вызывает исключение.

Линейные супертипы

Абстрактные члены-значения

abstract def getClass(): Class[_]

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

возвращает

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

Определяющие классы
Any

Конкретные члены-значения

final def !=(arg0: Any): Boolean

Проверяет два объекта на неравенство.

возвращает

true если !(this == that), в противном случае false.

Определяющие классы
Any

final def ##(): Int

Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов возвращает значение хэша, согласованное с равенством значений: если два объекта типа значения сравниваются как true, тогда ## вернёт одинаковое значение хэша для каждого из них. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.

возвращает

значение хэша, согласованное с ==

Определяющие классы
Any

final def ==(arg0: Any): Boolean

Проверяет два объекта на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

возвращает

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

Определяющие классы
Any

final def asInstanceOf[T0]: T0

Преобразует объект получателя к типу T0.

Обратите внимание, что успех приведения типов во время выполнения определяется семантикой стирания Scala. Следовательно, выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку тип аргумента стирается во время компиляции, невозможно проверить, соответствуют ли элементы списка запрошенному типу.

возвращает

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

Определяющие классы
Any
Исключения

ClassCastException если объект получателя не является экземпляром стирания типа T0.

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 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.12.9/scala/Nothing.html

Spec-Zone.ru

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