Die Standardoperatoren verhalten sich für Zeichenketten
und Zahlen, wie man es von ihnen erwartet. Nicht überall
vorhanden ist der Operator <=>, der beim Sortieren verwendet
wird. Sein Ergebnis entspricht dem Vorzeichen einer
"`Differenzbildung"' der beteiligten Objekte: negativ, falls
das linke Objekt vor dem rechten kommt,
bei Gleichheit und
positiv, falls das linke Objekt nach dem rechten kommt.
1 <=> 5 #-> -1 5 <=> 5 #-> 0 8 <=> 5 #-> 1 "a" <=> "r" #-> -1 "r" <=> "r" #-> 0 "z" <=> "r" #-> 1
Wird die <=>-Methode für eigene Klassen
definiert, erzeugt man damit effektiv eine Anordnung der Objekte
dieser Klassen
und bekommt alle Methoden geschenkt, die
in der Mixin-Klasse Comparable definiert werden,
wenn man Comparable mit include einbindet:
<, <=,
==, >=, > und between?,