fn render_task_enter_field<W>(stdout: &mut W)
where
W: Write,
{
...
}
我需要将此函数添加到向量中。我将迭代它并调用每个函数。
我已经尝试过
Vec<fn(&mut impl Write)>
,但不起作用
你想要这个:
Vec<Box<dyn Fn(&dyn Write)->()>>
包含动态类型函数的框向量,该函数采用实现写入的动态对象。
您无法将泛型函数添加到数组中,因为它实际上只是一大堆单独的函数,但您可以让它采用特征对象作为参数来获得相同的效果。
完整示例:
use std::io::Write;
fn render_task_enter_field(stdout: &dyn Write)
{
}
fn main() {
let mut k:Vec<Box<dyn Fn(&dyn Write)->()>> = vec![];
k.push(Box::new(render_task_enter_field));
}