Трейт scala.math.Ordered
Компаньон объект Ordered
трейт Ordered[A] extends Comparable[A]
Абстрактные члены
абстрактный def compare(that: A): Int
Результат сравнения this с операндом that.
Реализуйте этот метод, чтобы определить, как будут сортироваться экземпляры A.
Возвращает x, где:
x < 0 когда this < that
x == 0 когда this == that
x > 0 когда this > that
абстрактный def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- возвращает
объект класса, соответствующий типу получателя во время выполнения.
- Определяющие классы
- Any
Члены конкретных значений
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае false.
- Определяющие классы
- Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов возвращает значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, тогда ## возвращает одинаковое значение хэша для каждого из них. Для null возвращает хэш-код, где null.hashCode выбрасывает NullPointerException.
- возвращает
значение хэша, согласованное с ==
- Определяющие классы
- Any
def +(other: String): String
- Неявный
- Этот член добавляется неявным преобразованием из Ordered[A] в any2stringadd[Ordered[A]], выполненным методом any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (Ordered[A], B)
- Неявный
- Этот член добавляется неявным преобразованием из Ordered[A] в ArrowAssoc[Ordered[A]], выполненным методом ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
def <(that: A): Boolean
def <=(that: A): Boolean
final def ==(arg0: Any): Boolean
Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- Any
def >(that: A): Boolean
def >=(that: A): Boolean
final def asInstanceOf[T0]: T0
Преобразовать объект-получатель к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] бросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] не бросит. В последнем примере, поскольку аргумент типа стирается во время компиляции, нельзя проверить, относятся ли элементы списка к нужному типу.
- возвращает
объект-получатель.
- Определяющие классы
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стирания типаT0.
def compareTo(that: A): Int
Результат сравнения this с операндом that.
- Определяющие классы
- Ordered → Comparable
def ensuring(cond: (Ordered[A]) => Boolean, msg: => Any): Ordered[A]
- Неявный
- Этот член добавляется неявным преобразованием из Ordered[A] в Ensuring[Ordered[A]], выполненным методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (Ordered[A]) => Boolean): Ordered[A]
- Неявный
- Этот член добавлен неявным преобразованием из Ordered[A] вEnsuring[Ordered[A]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Ordered[A]
- Неявный
- Этот член добавлен неявным преобразованием из Ordered[A] вEnsuring[Ordered[A]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): Ordered[A]
- Неявный
- Этот член добавлен неявным преобразованием из Ordered[A] вEnsuring[Ordered[A]] с помощью метода 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
Возвращает строку, отформатированную согласно заданной строке форматирования. Строки форматирования такие же, как для String.format (@см java.lang.String.format).
- Неявный
- Этот член добавлен неявным преобразованием из Ordered[A] вStringFormat[Ordered[A]] с помощью метода 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/Ordered.html
Трейт для данных, имеющих единое, естественное упорядочение. Обратитесь к scala.math.Ordering, прежде чем использовать этот трейт, чтобы узнать, нужно ли использовать scala.math.Ordering вместо него.
Классы, реализующие этот трейт, могут быть отсортированы с помощью scala.util.Sorting и могут сравниваться с помощью стандартных операторов сравнения (например, > и <).
Ordered следует использовать для данных с единым естественным порядком (например, целых чисел), в то время как Ordering позволяет определять несколько порядков. При необходимости будет неявно создан экземпляр Ordering.
scala.math.Ordering — это альтернатива этому трейту, которая позволяет определить несколько порядков для одного и того же типа.
scala.math.PartiallyOrdered — это альтернатива этому трейту для частично упорядоченных данных.
Например, создайте простой класс, который реализует
Ordered, а затем отсортируйте его с помощью scala.util.Sorting:case class OrderedClass(n:Int) extends Ordered[OrderedClass] { def compare(that: OrderedClass) = this.n - that.n } val x = Array(OrderedClass(1), OrderedClass(5), OrderedClass(3)) scala.util.Sorting.quickSort(x) xВажно, чтобы метод
equalsдля экземпляраOrdered[A]был согласован с методом compare. Однако из-за ограничений, присущих семантике стирания типов, нет разумного способа предоставить реализацию по умолчанию для равенства экземпляровOrdered[A]. Поэтому, если вам нужно использовать равенство для экземпляраOrdered[A], вы должны предоставить его самостоятельно при наследовании или создании экземпляра.Важно, чтобы метод
hashCodeдля экземпляраOrdered[A]был согласован с методомcompare. Однако реализация по умолчанию невозможна. Поэтому, если вам нужно вычислить хэш-код экземпляраOrdered[A], вы должны предоставить его самостоятельно при наследовании или создании экземпляра.scala.math.Ordering, scala.math.PartiallyOrdered