impl Fn — static dispatch. dyn Fn — dynamic dispatch.
impl Fn:
dyn Fn:
1// Static dispatch2fn apply<F: Fn(i32) -> i32>(f: F, x: i32) -> i32 {3 f(x)4}56// Dynamic dispatch7fn apply_dyn(f: &dyn Fn(i32) -> i32, x: i32) -> i32 {8 f(x)9}
Key: impl Fn for performance, dyn Fn for flexibility.