rust 学习 闭包
fn return_clo() -> impl Fn(i32) -> i32 { //静态分发 |x| x+1 } fn return_clo1() -> Box<dyn Fn(i32) -> i32> { //使用 Box<dyn Fn>(动态分发) Box::new(|x| x + 1) } //捕获外部变量的闭包 fn return_clo2(y: i32) -> impl Fn(i32) -> i32 { move |x| x + y // move 关键字把 y 的所有权移入闭包 } fn main() { println!("{}",return_clo()(1)); println!("{}",return_clo1()(2)); println!("{}",return_clo2(5)(3)); }