我想要使用for循环遍历函数的向量并在每个步骤执行每个函数。遍历函数的向量
fn f1(i: i32) -> i32 {
i * 2
}
fn f2(i: i32) -> i32 {
i * 4
}
fn main() {
let mut arr: Vec<|i32| -> i32> = Vec::new();
arr.push(f1);
arr.push(f2);
for f in arr.iter() {
println!("{}", f(1));
}
}
但f(1)
已尝试执行给出了这样的错误:
error: expected function, found '&|i32| -> i32'
我把功能载体猜测他们的类型发生突变,不再像一个正常功能。有没有办法将它改回来,还是我错过了什么?
您能给出一个最小可重现的例子吗?什么是'f1'和'f2'? – 2014-12-05 09:12:53
http://stackoverflow.com/questions/26301269/calling-closures-from-an-array-in-rust,但其答案不再有效(可能在关闭改革后)。 – 2014-12-05 09:13:12
@MatthieuM。编辑 – AllTheTime 2014-12-05 09:17:34