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
|
||||
|
||||
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;
|
||||
for x in v { it(i, x); i += 1u; }
|
||||
}
|
||||
|
@ -292,6 +292,20 @@ fn test_foldl() {
|
||||
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]
|
||||
fn test_any_and_all() {
|
||||
assert (vec::any(is_three, [1u, 2u, 3u]));
|
||||
|
Loading…
Reference in New Issue
Block a user