



























这是一个创建于 506 天前的主题,其中的信息可能已经有所发展或是发生改变。
在看 B 站上的教程,看到关于 move 和 闭包的东西。 地址是 https://b23.tv/dXol75P
其实中说 FnOne 是至少调用一次。
还有 Rust 圣经中也同样这么说。 内容如下:
所有的闭包都自动实现了 FnOnce 特征,因此任何一个闭包都至少可以被调用一次
但 Kimi 的解释是:
FnOnce 的设计目标是确保闭包在调用时可以安全地消耗变量的所有权,而不是强制要求闭包必须被调用。换句话说:
“只能调用一次”:闭包被设计为只能调用一次,以避免多次调用导致的错误。
“至少调用一次”:这不是 FnOnce 的要求。闭包可以选择不被调用,但一旦调用,就不能再次调用。
大致意思就是“只能调用一次”
我的理解也是只能调用一次。
ps: 前几天看到有个推荐 Rust 教程的页面,说《 Rust 语言圣经》错误太多。我现在找不到出处了。请问有哪些是错误的?
1 PTLin 2025 年 1 月 25 日调用 FnOnce 闭包其实展开是这样 |
2 nebkad 2025 年 1 月 26 日在实际效果上,FnOnce 最多被调用一次。 |
3 geekard 2025 年 2 月 3 日FnOnce 有两个含义: 对于第一种作为限界的 FnOnce ,可以传入的闭包类型是最宽松的,也就是可以传入 实现 FnOnce/Fn/FnMut 的闭包。 |
4 Observer42 2025 年 3 月 27 日这段《 Rust 语言圣经》也没说错,“至少可以被调用一次” |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。