Rust 的闭包由于没有额外的堆内存分配、潜在的动态分派(很多语言会把闭包处理成函数指针)、额外的内存回收,所以性能上,Rust 的闭包会比其他语言优很多。
语法:

  1. fn function_name(parameters) -> return_type {
  2. // 函数的具体逻辑
  3. }
  4. |parameter| {
  5. // 闭包的具体逻辑
  6. }

Rust 的闭包类型

  • FnOnce (只能被调用一次)
  • FnMut
  • Fn