Spec-Zone.ru › Scala 3.2

Класс Any.Any

абстрактный открытый класс Any

Класс Any является корнем иерархии классов Scala. Каждый класс в среде выполнения Scala наследуется непосредственно или косвенно от этого класса.

Начиная со Scala 2.10, можно напрямую расширять Any с помощью универсальных трейтов. Универсальный трейт — это трейт, который расширяет Any, имеет только def в качестве членов и не выполняет инициализацию.

Основной случай использования универсальных трейтов — это разрешение базового наследования методов для классов значений. Например,

trait Printable extends Any {
  def print(): Unit = println(this)
}
class Wrapper(val underlying: Int) extends AnyVal with Printable

val w = new Wrapper(3)
w.print()

Дополнительные сведения о взаимодействии универсальных трейтов и классов значений см. в разделе Классы значений и универсальные трейты.

Конкретные методы

final def !=(x$0: Any): Boolean

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

Параметры значения
that

объект для сравнения с этим объектом на равенство.

Возвращает

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

final def ##: Int

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

Возвращает

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

final def ==(x$0: Any): Boolean

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

Параметры значения
that

объект для сравнения с этим объектом на равенство.

Возвращает

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

final def asInstanceOf[X0]: X0

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

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

Возвращает

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

Выбрасывает
ClassCastException

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

def equals(x$0: 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)).

Параметры значения
that

объект для сравнения с этим объектом на равенство.

Возвращает

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

final def getClass[X0 = Any](): Class[_ <: X0]

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

Возвращает

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

def hashCode(): Int

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

По умолчанию алгоритм хэширования зависит от платформы.

Обратите внимание, что для двух объектов допустимо иметь одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)) но при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), у них были одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода необходимо убедиться, что поведение согласуется с методом equals.

Возвращает

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

final def isInstanceOf[X0]: Boolean

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

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

Возвращает

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

def toString(): String

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

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

Возвращает

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

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/Any.html

Spec-Zone.ru

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