Spec-Zone.ru › Scala 2.12 Library

Трейт scala.math.Equiv

Компаньон объект Equiv

трейт Equiv[T] extends Serializable

Трейт для представления отношений эквивалентности. Важно различать тип, который можно сравнить на равенство или эквивалентность, и представление эквивалентности для некоторого типа. Этот трейт предназначен для представления последнего.

Отношение эквивалентности — это бинарное отношение на типе. Это отношение экспонируется как метод equiv трейта Equiv. Отношение должно быть:

  1. рефлексивным: equiv(x, x) == true для любого x типа T.
  2. симметричным: equiv(x, y) == equiv(y, x) для любых x и y типа T.
  3. транзитивным: если equiv(x, y) == true и equiv(y, z) == true, то equiv(x, z) == true для любых x, y, и z типа T.
Источник
Equiv.scala
С

2.7

Линейные супертипы
Известные подклассы

Абстрактные члены

абстрактный def equiv(x: T, y: T): Boolean

абстрактный def getClass(): Class[_]

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

возвращает

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

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

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

final def !=(arg0: Any): Boolean

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

returns

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

Definition Classes
Any

final def ##(): Int

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

returns

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

Definition Classes
Any

def +(other: String): String

Неявный
Этот член добавлен неявным преобразованием из Equiv[T] в any2stringadd[Equiv[T]], выполненным методом any2stringadd в scala.Predef.
Definition Classes
any2stringadd

def ->[B](y: B): (Equiv[T], B)

Неявный
Этот член добавлен неявным преобразованием из Equiv[T] в ArrowAssoc[Equiv[T]], выполненным методом ArrowAssoc в scala.Predef.
Definition Classes
ArrowAssoc
Аннотации
@inline()

final def ==(arg0: Any): Boolean

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

returns

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

Definition Classes
Any

final def asInstanceOf[T0]: T0

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

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

returns

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

Definition Classes
Any
Исключения

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

def ensuring(cond: (Equiv[T]) ⇒ Boolean, msg: ⇒ Any): Equiv[T]

Неявный
Этот член добавлен неявным преобразованием из Equiv[T] в Ensuring[Equiv[T]], выполненным методом Ensuring в scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: (Equiv[T]) ⇒ Boolean): Equiv[T]

Неявный
Этот член добавлен неявным преобразованием из Equiv[T] в Ensuring[Equiv[T]], выполненным методом Ensuring в scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: Boolean, msg: ⇒ Any): Equiv[T]

Неявный
Этот член добавлен неявным преобразованием из Equiv[T] в Ensuring[Equiv[T]], выполненным методом Ensuring в scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: Boolean): Equiv[T]

Неявный
Этот член добавлен с помощью неявного преобразования из Equiv[T] в Ensuring[Equiv[T]] с помощью метода Ensuring в scala.Predef.
Классы определений
Ensuring

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 formatted(fmtstr: String): String

Возвращает строку, отформатированную в соответствии с заданной format строкой. Форматные строки аналогичны String.format (@see java.lang.String.format).

Неявный
Этот член добавлен с помощью неявного преобразования из Equiv[T] в StringFormat[Equiv[T]] с помощью метода StringFormat в scala.Predef.
Классы определений
StringFormat
Аннотации
@inline()

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

def →[B](y: B): (Equiv[T], B)

Неявный
Этот член добавлен с помощью неявного преобразования из Equiv[T] в ArrowAssoc[Equiv[T]] с помощью метода ArrowAssoc в scala.Predef.
Классы определений
ArrowAssoc

© 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/math/Equiv.html

Spec-Zone.ru

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