Класс scala.Nothing
абстрактный final класс Nothing extends Any
Абстрактные члены значения
abstract def getClass(): Class[_ <: AnyRef]
Конкретные члены значения
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
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, который всегда вызывает исключение.