mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-01 20:47:36 +00:00
Add std::vec::iter
This commit is contained in:
parent
9c097d19e4
commit
b5ed1c46c0
@ -655,12 +655,23 @@ fn eachi<T>(f: block(T, uint) -> (), v: [mutable? T]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Function: iter
|
||||||
|
|
||||||
|
Iterates over a vector
|
||||||
|
|
||||||
|
Iterates over vector `v` and, for each element, calls function `f`
|
||||||
|
*/
|
||||||
|
fn iter<T>(v: [mutable? T], it: block(T)) {
|
||||||
|
iter2(v) { |_i, v| it(v) }
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Function: iter2
|
Function: iter2
|
||||||
|
|
||||||
FIXME: This is exactly the same as eachi
|
FIXME: This is exactly the same as eachi
|
||||||
*/
|
*/
|
||||||
fn iter2<T>(v: [T], it: block(uint, T)) {
|
fn iter2<T>(v: [mutable? T], it: block(uint, T)) {
|
||||||
let i = 0u;
|
let i = 0u;
|
||||||
for x in v { it(i, x); i += 1u; }
|
for x in v { it(i, x); i += 1u; }
|
||||||
}
|
}
|
||||||
|
@ -292,6 +292,20 @@ fn test_foldl() {
|
|||||||
assert (sum == 15u);
|
assert (sum == 15u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn iter_empty() {
|
||||||
|
let i = 0;
|
||||||
|
vec::iter::<int>([], { |_v| i += 1 });
|
||||||
|
assert i == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn iter_nonempty() {
|
||||||
|
let i = 0;
|
||||||
|
vec::iter([1, 2, 3], { |v| i += v });
|
||||||
|
assert i == 6;
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_any_and_all() {
|
fn test_any_and_all() {
|
||||||
assert (vec::any(is_three, [1u, 2u, 3u]));
|
assert (vec::any(is_three, [1u, 2u, 3u]));
|
||||||
|
Loading…
Reference in New Issue
Block a user