Spec-Zone.ru › Scala 2.13 Library

Класс scala.Nothing

абстрактный final класс 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[_ <: AnyRef]

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

returns

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

Определяющие классы
Any
Линейные супертипы
Any

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

final def !=(arg0: Any): Boolean

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

returns

true если !(this == that), иначе false.

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

final def ##(): Int

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

returns

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

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

final def ==(arg0: Any): Boolean

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

returns

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

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

final def asInstanceOf[T0]: T0

Привести получаемый объект к типу T0.

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

returns

получаемый объект.

Определяющие классы
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)).

returns

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.

returns

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

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

final def isInstanceOf[T0]: Boolean

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

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

returns

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

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

def toString(): String

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

Представление по умолчанию зависит от платформы.

returns

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

Определяющие классы
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/Nothing.html

Spec-Zone.ru

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