implicit final class ExtraRichOrderedInt extends AnyRef
- Alphabetic
- By Inheritance
- ExtraRichOrderedInt
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ExtraRichOrderedInt(prev: Int)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
thenCompare[A](a1: A, a2: A)(implicit ord: Ordering[A]): Int
Returns the result of the immediately previous comparison if it was not
0
; otherwise the result of comparing two other things (a1
anda2
).Returns the result of the immediately previous comparison if it was not
0
; otherwise the result of comparing two other things (a1
anda2
).This method is intended to be used to chain comparisons, as in the following example:
case class PlayingCard(rank: Rank, suit: Suit) extends Ordered[PlayingCard] { override def compare(other: PlayingCard): Int = { (this.rank compare that.rank) .thenCompare(this.suit, that.suit) } }
While this method can called on arbitrary Ints, to be meaningful, it should only be called on the result of a previous comparison.
Because the implicit class containing this method does not extend AnyVal, invoking this method results in object creation. Consequently, it is almost certainly more efficient to compare tupled elements instead, as in the following modification of the above example:
case class PlayingCard(rank: Rank, suit: Suit) extends Ordered[PlayingCard] { override def compare(other: PlayingCard): Int = { (this.rank, this.suit) compare (that.rank, that.suit) } }
If one wants to use this method efficiently, it is recommended to copy the code from the
com.nthportal
package object (which extends AnyVal) and paste it where needed.- A
the type of
a1
anda2
- a1
the first thing to compare
- a2
the second thing to compare
- ord
an Ordering for
a1
anda2
- returns
the result of the previous comparison if it was not
0
, or the result of comparing the two other things otherwise
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )