fnmutant:变量闭包Fn(&mut)
此(实验)板条箱声明了一个FnMutant类型, FnMutant具有字段f: for<'a> Fn(X) -> Y ,其作用与fn(X) -> Y函数指针非常相似,但它是Trait而不是类型。 因此,它可以采用通用参数。 这指定Fn必须在所有生命周期内都有效,即使小于f的生命周期也是如此。 通过X对f给出的任何引用都不能被f捕获。 这导致可以多次调用该函数(与FnOnce不同),并且无法捕获唯一的&mut借位(与FnMut不同)。 为了解释为什么此类型不是for<'a> Fn(x) -> Y的简单类型别名,我们可以在下面添加类型别名FnMutantGoodError ,以及测试中的某些更改导致的编译器错误。 pub type FnMutantGoodError<'a, In, Extra, Out, F=&'a dyn for<'b> Fn(In,Extra) -> Out>