我正在阅读《Rust编程语言》的第19章,看到了这段代码: Box<dyn Fn() + Send + 'static> 这是干什么用的?为什么里面有加号(+)?我不记得在上一章中遇到过这个。 Box::new(|| println!("hi")) 怎么成为一个 Box<dyn Fn() + Send + 'static>?
+
运算符用于结合来自cargo doc的限制:在处理泛型时,类型参数通常必须使用特质作为限制条件,以规定类型实现的功能。例如,以下示例使用Display特质进行打印,因此需要将T绑定为Display;也就是说,T必须实现Display。
对于您的情况,Box
包含一个具有'static
生命周期并实现Send
的动态对象。 - Asya Corbeau