J
Size: a a a
J
J
J
SS
let x = |i| i * 2;И всё будет работать, потому что компилятор даст иксу тип. Но пользователю его не покажет. Но как сделать замыкания объектами первого класса без кучи?
Fn(i32, i32) -> String
. И ты должен написатьfn add_listener<T: Fn(i32) -> String>(listener: T) {Если с сахаром то
...
}
fn add_listener(listener: impl Fn(i32) -> String) {Но где хранятся переменные замыкания? Да прям в самом замыкании, замыкание это стуктура, которая тайно содержит функцию и переменные замыкания, и делается это всё автоматически, поэтому у каждого замыкания уникальный неизвестный тип, потому что структуры могут быть разных размеров в зависимости от захваченных переменных, поэтому весь "диалог" с замыканиями должен происходить через дженерики.
...
}
J
SS
SS
J
J
SS
IM
4
4
NK
SS
И
И
И
yp
C