У меня есть-структуру, которая выглядит примерно так:Как клонировать закрытие, чтобы их типы были одинаковыми?
pub struct MyStruct<F> where F: Fn(usize) -> f64 {
field: usize,
mapper: F,
// fields omitted
}
Как реализовать Clone
для этой структуры?
Один способ я нашел, с помощью которого я могу скопировать тело функции:
let mapper = |x| (mystruct.mapper)(x);
Но это приводит к mapper
имеющих различный тип, чем у mystruct.mapper
.
Что такое 'I'? Это не компилируется. Если 'F' ничего не вернул, почему бы не просто' # [getive (Clone)]? – ljedrz
@ljedrz Ах! Извините, исправил его ... Пожалуйста, взгляните на ссылку в манере, которую я добавил сейчас. – John