Класс scala.Nothing
абстрактный финальный класс Nothing extends Any
Абстрактные члены-значения
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
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, который всегда вызывает исключение.