gpt4 book ai didi

rust - 如何找到合适的组合器以使此代码与rayon一起使用?

转载 作者:行者123 更新时间:2023-12-03 11:48:49 26 4
gpt4 key购买 nike

我想更改以下代码,以避免使用.unwrap或.expect:

thread::scope(|s| {
for name in names {
s.spawn(move |_| {
let path_to_file = format!("{}{}", base, name.as_str());
let path_to_file_written = format!("{}{}", guichetout, name.as_str());
write_file(path_to_file.as_str(), name.as_str(), guichetout)
.expect("cannot write data");
log_hash(&path_to_file_written)
.expect("Cannot write hash !");
});
}
})
.unwrap();

我目前正在使用crossbeam_utils::thread,并且正在考虑切换到人造丝。因此,我需要将此代码更改为具有各种组合器的迭代器。
我已经尝试了很多东西,但是没有任何正常工作。因此,如果有人可以帮助我,那就太好了。

最佳答案

  • 将最里面的代码移到函数中,以便您可以轻松返回Result并使用?运算符处理错误。
  • 使用一个 channel (std的mpsc channel 或crossbeam的更快的 channel )将结果发送回去。 if let Err(e) = fallible() { channel.send(e) }。在另一个线程上,您可以从该 channel 读取并查看是否出错,或者 channel 是否关闭而没有错误到达(成功)。
  • 关于rust - 如何找到合适的组合器以使此代码与rayon一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61954738/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com