Skip to content
 Rust

Rust:函数、闭包、Fn特质

Updated: at 00:00:00Suggest Changes

特质用途

依赖关系

Fn : FnMut : FnOnce

函数的特质

任何一个函数都实现了FnOnce, FnMut, Fn, Copy

闭包

闭包的Fn特质靠编译器的类型推理实现,每个闭包都有属于自己的匿名结构体存储捕获内容,俩闭包即使内容相同,它们的类型也相异。

调用

// 看看 FnOnce 的源码
pub trait FnOnce<Args> {
    type Output;
    extern "rust-call" fn call_once(self, args: Args) -> Self::Output;
}

当调用一个函数或闭包时,编译器首先寻找call调用,若无则寻call_mut,再无则寻call_once

参考文章

Nichts Hsu - Rust 中函数与闭包与 Fn Traits 探讨


Previous Post
解析 Linux 系统目录
Next Post
Rust的字符串