map是什么
Rust中的map是指map方法,并不是C++中map数据结构,c++中的map在Rust中等价为的集合类型HashMap。
map的使用
不少的对象都有实现map方法,基本含义相同:map方法接受一个闭包,并创建一个新的迭代器,在新迭代器的每个元素上调用该闭包。
例如:
std::iter::Iterator.map
fn main() {
let a = [1, 2, 3];
let mut iter = a.iter().map(|x| 2 * x);
println!("{:?}", iter.next());
println!("{:?}", iter.next());
println!("{:?}", iter.next());
}
输出
Some(2)
Some(4)
Some(6)
使用for实现map功能
fn main() {
let a = [1, 2, 3];
for x in a {
println!("{}", 2*x);
}
}
输出
2
4
6
map和for的区别
map和for可以实现相同的功能,但是map返回的迭代器,在执行上惰性的。必须调用next()才能执行。
Rust有借鉴Haskell,Haskell就是惰性求值的函数式编程语言。