闭包调用时先调用 call_once 为什么不报错

闭包调用时先调用 call_once 为什么不报错

💡 原文中文,约700字,阅读约需2分钟。
📝

内容提要

在之前的部分中,我们学习了闭包和函数特性。闭包可以实现FnOnce和FnMut特性,分别消耗所有权和可多次调用。在修改代码时,我们满足了闭包对结构体的可变借用要求。

🎯

关键要点

  • 文章讨论了闭包和函数特性,特别是FnOnce和FnMut特性。

  • 闭包可以消耗所有权或可多次调用,具体取决于其实现的特性。

  • 示例代码展示了如何使用FnOnce和FnMut闭包。

  • 在使用FnOnce闭包时,调用call_once会消耗闭包的所有权,导致无法再次调用。

  • 对于实现FnMut的闭包,调用call_once后仍然可以使用call_mut,但会出现编译错误。

  • 通过修改代码满足闭包对结构体的可变借用要求,最终成功编译。

➡️

继续阅读