tutorial: fix for-loop example

Although in the example function `each` works as expected with
rust-0.6 (the latest release), it fails to even compile with `incoming`
rust (see test/compile-fail/bad-for-loop-2.rs). Change the function to
return a `bool` instead of `()`: this works fine with both versions of
rust, and does not misguide potential contributors.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
This commit is contained in:
Ramkumar Ramachandra 2013-06-06 19:23:38 +05:30
parent c2cb238075
commit dd923e3831
1 changed files with 5 additions and 4 deletions

View File

@ -1613,18 +1613,19 @@ loop. Like `do`, `for` is a nice syntax for describing control flow
with closures. Additionally, within a `for` loop, `break`, `loop`,
and `return` work just as they do with `while` and `loop`.
Consider again our `each` function, this time improved to
break early when the iteratee returns `false`:
Consider again our `each` function, this time improved to return
immediately when the iteratee returns `false`:
~~~~
fn each(v: &[int], op: &fn(v: &int) -> bool) {
fn each(v: &[int], op: &fn(v: &int) -> bool) -> bool {
let mut n = 0;
while n < v.len() {
if !op(&v[n]) {
break;
return false;
}
n += 1;
}
return true;
}
~~~~