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

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

Issue 11410086: Use iterator, moveNext(), current. (Closed) Base URL: https://dart.googlecode.com/svn/experimental/lib_v2/dart
Patch Set: Address comments. Created 8 years, 1 month 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
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 /** 5 /**
6 * The [Iterable] interface allows to get an [Iterator] out of an 6 * The [Iterable] interface allows to get an [Iterator] out of an
7 * [Iterable] object. 7 * [Iterable] object.
8 * 8 *
9 * This interface is used by the for-in construct to iterate over an 9 * This interface is used by the for-in construct to iterate over an
10 * [Iterable] object. 10 * [Iterable] object.
11 * The for-in construct takes an [Iterable] object at the right-hand 11 * The for-in construct takes an [Iterable] object at the right-hand
12 * side, and calls its [iterator] method to get an [Iterator] on it. 12 * side, and calls its [iterator] method to get an [Iterator] on it.
13 * 13 *
14 * A user-defined class that implements the [Iterable] interface can 14 * A user-defined class that implements the [Iterable] interface can
15 * be used as the right-hand side of a for-in construct. 15 * be used as the right-hand side of a for-in construct.
16 */ 16 */
17 abstract class Iterable<E> { 17 abstract class Iterable<E> {
18 const Iterable(); 18 const Iterable();
19 19
20 /** 20 /**
21 * Returns an [Iterator] that iterates over this [Iterable] object. 21 * Returns an [Iterator] that iterates over this [Iterable] object.
22 */ 22 */
23 Iterator<E> iterator(); 23 Iterator<E> get iterator;
24 24
25 /** 25 /**
26 * Returns a new collection with the elements [: f(e) :] 26 * Returns a new collection with the elements [: f(e) :]
27 * for each element [:e:] of this collection. 27 * for each element [:e:] of this collection.
28 * 28 *
29 * Subclasses of [Collection] should implement the [mappedBy] method 29 * Subclasses of [Collection] should implement the [mappedBy] method
30 * to return a collection of the same general type as themselves. 30 * to return a collection of the same general type as themselves.
31 * E.g., [List.mappedBy] should return a [List]. 31 * E.g., [List.mappedBy] should return a [List].
32 */ 32 */
33 Collection mappedBy(f(E element)) { 33 Collection mappedBy(f(E element)) {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 bool some(bool f(E element)) { 108 bool some(bool f(E element)) {
109 for (E element in this) { 109 for (E element in this) {
110 if (f(element)) return true; 110 if (f(element)) return true;
111 } 111 }
112 return false; 112 return false;
113 } 113 }
114 114
115 /** 115 /**
116 * Returns true if there is no element in this collection. 116 * Returns true if there is no element in this collection.
117 */ 117 */
118 bool get isEmpty => !iterator().hasNext; 118 bool get isEmpty => !iterator.moveNext();
119 } 119 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698