@@ -42,12 +42,12 @@ loop is just a handy way to write this `loop`/`match`/`break` construct.
42
42
` for ` loops aren't the only thing that uses iterators, however. Writing your
43
43
own iterator involves implementing the ` Iterator ` trait. While doing that is
44
44
outside of the scope of this guide, Rust provides a number of useful iterators
45
- to accomplish various tasks. Before we talk about those, we should talk about a
46
- Rust anti-pattern. And that's using ranges like this.
45
+ to accomplish various tasks. But first, a few notes about limitations of ranges.
47
46
48
- Yes, we just talked about how ranges are cool. But ranges are also very
49
- primitive. For example, if you needed to iterate over the contents of a vector,
50
- you may be tempted to write this:
47
+ Ranges are very primitive, and we often can use better alternatives. Consider
48
+ following Rust anti-pattern: using ranges to emulate a C-style ` for ` loop. Let’s
49
+ suppose you needed to iterate over the contents of a vector. You may be tempted
50
+ to write this:
51
51
52
52
``` rust
53
53
let nums = vec! [1 , 2 , 3 ];
@@ -281,8 +281,8 @@ If you are trying to execute a closure on an iterator for its side effects,
281
281
just use ` for ` instead.
282
282
283
283
There are tons of interesting iterator adapters. ` take(n) ` will return an
284
- iterator over the next ` n ` elements of the original iterator. Let's try it out with our infinite
285
- iterator from before :
284
+ iterator over the next ` n ` elements of the original iterator. Let's try it out
285
+ with an infinite iterator :
286
286
287
287
``` rust
288
288
for i in (1 .. ). take (5 ) {
0 commit comments