Skip to content

Commit 68c960a

Browse files
committed
Explain container iteration in the loop tutorial
As suggested by @pnkfelix in #12161, this extends the examples by a for-loop that iterates over a string as an example for container iteration.
1 parent fbadb36 commit 68c960a

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/doc/tutorial.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -582,8 +582,7 @@ loop {
582582
This code prints out a weird sequence of numbers and stops as soon as
583583
it finds one that can be divided by five.
584584

585-
There is also a for-loop that can be used to iterate over a range of numbers
586-
(or, more generally, anything implementing the `Iterator` trait):
585+
There is also a for-loop that can be used to iterate over a range of numbers:
587586

588587
~~~~
589588
for n in range(0, 5) {
@@ -593,6 +592,21 @@ for n in range(0, 5) {
593592

594593
The snippet above prints integer numbers under 5 starting at 0.
595594

595+
More generally, a for loop works with anything implementing the `Iterator` trait.
596+
Data structures can provide one or more methods that return iterators over
597+
their contents. For example, strings support iteration over their contents in
598+
various ways:
599+
600+
~~~~
601+
let s = "Hello";
602+
for c in s.chars() {
603+
println!("{}", c);
604+
}
605+
~~~~
606+
607+
The snippet above prints the characters in "Hello" vertically, adding a new
608+
line after each character.
609+
596610

597611
# Data structures
598612

0 commit comments

Comments
 (0)