說我有兩個功能:函數返回通用的函數指針
fn function_with_one_argument(one: i64) -> bool{
one==one // irrelevant
}
fn function_with_two_arguments(one: i64, two: i64) -> bool {
one==two // irrelevant
}
鑑於不同的輸入值,我想返回不同的函數指針:
fn main() {
println!("\n\n{:?}\n\n", get_function_pointer(1)(321));
println!("{:?}", get_function_pointer(2)(321/*, 321*/));
}
我怎麼能代表返回一個指向不同形狀函數的指針的返回值?
fn get_function_pointer(id: i64) -> /***/(fn(i64) -> bool)/***/ {
match id {
1 => function_with_one_argument,
// 2 => function_with_two_arguments, /*How do we make this work?*?
_ => panic!("!?!?!")
}
}
這兩個函數甚至沒有相同的原型。 'function_with_two_arguments'不是'fn(i64) - > bool'。你究竟想在這裏完成什麼? –
@ E_net4我想改變返回類型'get_function_pointer'返回一個函數更通用的簽名。目標是動態地將不同形狀的函數作爲測試屬性進行快速檢查。 – DaveyLaser
quickcheck如何調用它收到的函數? –