【发布时间】:2023-01-12 16:47:51
【问题描述】:
let mut result = some_func();
for s in some_iterator {
if result.is_ok() {
break;
}
thread::sleep(time::Duration::from_millis(10));
result = some_func();
}
// use result
我有一个类似于上面的代码,正在尝试调用 some_func()。在这里,我必须将 result 声明为 mut 以在重试期间更新它。是否有一些我可以使用的功能魔法,这样我就不必将result 声明为mut?
我考虑了以下内容,但不认为这是一个理想的示例,因为我将不得不在那里迭代 some_iterator 的每个元素,这不是我想要的
let result = retry_strategy.fold(some_func(), |result, x| {
if result.is_ok() {
return result;
}
// sleep and retry
});
附言:如果你有更好的这篇文章标题,请告诉我
【问题讨论】:
-
是
some_iterator还是retry_strategy?
标签: rust functional-programming