主要观点:Rust 存在临时效果、无原则性效果系统及相关问题,通过具体示例展示了在处理高阶函数及不同场景(如同步与异步、可失败情况)时的方法及不足。
关键信息:
- 示例中
names
函数返回Iterator
,find
用于查找第一个可用名字,若is_available
可能失败则需用try_find
。 - 当
is_available
为async
时需使用Stream
,但Stream
无find
方法,需用filter
和next
模拟。 - 处理
async
且可失败的is_available
时需更多方法和复杂操作,说明filter
方法无法抽象处理可失败或异步情况。
重要细节: - 示例代码中展示了不同情况下的函数调用和处理方式,如同步查找、异步处理等。
- 提到
try_find
在稳定版本中可能不可用,以及代码中未包含处理固定的相关内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。