Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(638)

Side by Side Diff: sdk/lib/core/comparable.dart

Issue 12255055: Make Comparable generic. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/collection/splay_tree.dart ('k') | sdk/lib/core/date_time.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart.core; 5 part of dart.core;
6 6
7 /** 7 /**
8 * The signature of a generic comparison function. 8 * The signature of a generic comparison function.
9 * 9 *
10 * A comparison function represents an ordering on a type of objects. 10 * A comparison function represents an ordering on a type of objects.
11 * A total ordering on a type means that for two values, either they 11 * A total ordering on a type means that for two values, either they
12 * are equal or one is greater than the other (and the latter must then be 12 * are equal or one is greater than the other (and the latter must then be
13 * smaller than the former). 13 * smaller than the former).
14 * 14 *
15 * A [Comparator] function represents such a total ordering by returning 15 * A [Comparator] function represents such a total ordering by returning
16 * * a negative integer if [a] is smaller than [b], 16 * * a negative integer if [a] is smaller than [b],
17 * * zero if [a] is equal to [b], and 17 * * zero if [a] is equal to [b], and
18 * * a positive integer if [a] is greater than [b]. 18 * * a positive integer if [a] is greater than [b].
19 */ 19 */
20 typedef int Comparator<T>(T a, T b); 20 typedef int Comparator<T>(T a, T b);
21 21
22 /** 22 /**
23 * Interface used by types that have an intrinsic ordering. 23 * Interface used by types that have an intrinsic ordering.
24 */ 24 */
25 abstract class Comparable { 25 abstract class Comparable<T extends Comparable<T>> {
26 /** 26 /**
27 * Compares this object to another [Comparable] 27 * Compares this object to another [Comparable]
28 * 28 *
29 * Returns a value like a [Comparator] when comparing [:this:] to [other]. 29 * Returns a value like a [Comparator] when comparing [:this:] to [other].
30 * 30 *
31 * May throw an [ArgumentError] if [other] is of a type that 31 * May throw an [ArgumentError] if [other] is of a type that
32 * is not comparable to [:this:]. 32 * is not comparable to [:this:].
33 */ 33 */
34 int compareTo(Comparable other); 34 int compareTo(T other);
35 35
36 /** 36 /**
37 * Compare one comparable to another. 37 * Compare one comparable to another.
38 * 38 *
39 * This utility function is used as the default comparator 39 * This utility function is used as the default comparator
40 * for the [List] sort function. 40 * for the [List] sort function.
41 */ 41 */
42 static int compare(Comparable a, Comparable b) => a.compareTo(b); 42 static int compare(Comparable a, Comparable b) => a.compareTo(b);
43 } 43 }
OLDNEW
« no previous file with comments | « sdk/lib/collection/splay_tree.dart ('k') | sdk/lib/core/date_time.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698