Spec-Zone.ru › Scala 2.13 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

Линейные супертипы
java.io.Serializable, Any
Известные подклассы
ValueOrdering, DeadlineIsOrdered, DurationIsOrdered, FiniteDurationIsOrdered, BigDecimal, BigInt, Boolean, Byte, Char, IeeeEquiv, IeeeEquiv, StrictEquiv, StrictEquiv, IeeeEquiv, IeeeEquiv, StrictEquiv, StrictEquiv, Int, Long, Short, String, Symbol, Unit, Fractional, Integral, Numeric, BigDecimalAsIfIntegral, BigDecimalAsIfIntegral, BigDecimalIsConflicted, BigDecimalIsFractional, BigDecimalIsFractional, BigIntIsIntegral, BigIntIsIntegral, ByteIsIntegral, ByteIsIntegral, CharIsIntegral, CharIsIntegral, DoubleIsFractional, DoubleIsFractional, FloatIsFractional, FloatIsFractional, IntIsIntegral, IntIsIntegral, LongIsIntegral, LongIsIntegral, ShortIsIntegral, ShortIsIntegral, Ordering, BigDecimal, BigDecimalOrdering, BigInt, BigIntOrdering, Boolean, BooleanOrdering, Byte, ByteOrdering, CachedReverse, Char, CharOrdering, IeeeOrdering, IeeeOrdering, TotalOrdering, TotalOrdering, IeeeOrdering, IeeeOrdering, TotalOrdering, TotalOrdering, Int, IntOrdering, Long, LongOrdering, OptionOrdering, Short, ShortOrdering, String, StringOrdering, Symbol, SymbolOrdering, Unit,
UnitOrdering, PartialOrdering, DeprecatedDoubleEquiv, DeprecatedFloatEquiv, DeprecatedDoubleOrdering, DeprecatedFloatOrdering

Члены-значения

abstract def equiv(x: T, y: T): Boolean

abstract def getClass(): Class[_ <: AnyRef]

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

возвращает

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

Классы определения
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.
Классы-определения
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 имеют одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)).

возвращает

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

Классы-определения
Any

def formatted(fmtstr: String): String

Возвращает строку, отформатированную в соответствии с заданной строкой format. Форматные строки аналогичны String.format (@см 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

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

Spec-Zone.ru

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