我想要使用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