有没有办法直接消耗人造丝链而不先收集它?

2024-04-09

我使用 Rayon 来产生相当大的返回值。将所有返回值收集到一个中时,这会使用大量内存Vec。有没有办法避免创建Vec并直接作为可迭代对象使用?

这是一个不起作用的示例:

fn main() {
    let numbers: Vec<_> = "12.03 0.3 44.2 45 zzz".split_whitespace().collect();

    let x = numbers
        .par_iter()
        .map(|n| n.parse::<f32>())
        .filter_map(|n| n.ok());

    for n in x {
        println!("{:?}", n);
    }
}
error[E0277]: the trait bound `rayon::iter::FilterMap<rayon::iter::Map<rayon::slice::Iter<'_, &str>, [closure@src/main.rs:10:14: 10:34]>, [closure@src/main.rs:11:21: 11:31]>: std::iter::Iterator` is not satisfied
   |
13 |     for n in x {
   |              ^ `rayon::iter::FilterMap<rayon::iter::Map<rayon::slice::Iter<'_, &str>, [closure@src/main.rs:10:14: 10:34]>, [closure@src/main.rs:11:21: 11:31]>` is not an iterator; maybe try calling `.iter()` or a similar method
   |
   = help: the trait `std::iter::Iterator` is not implemented for `rayon::iter::FilterMap<rayon::iter::Map<rayon::slice::Iter<'_, &str>, [closure@src/main.rs:10:14: 10:34]>, [closure@src/main.rs:11:21: 11:31]>`
   = note: required by `std::iter::IntoIterator::into_iter`

您正在寻找ParallelIterator::for_each https://docs.rs/rayon/1.0.2/rayon/iter/trait.ParallelIterator.html#method.for_each:

extern crate rayon; // 1.0.2

use rayon::prelude::*;

fn main() {
    let numbers = ["12.03", "0.3", "44.2", "45", "zzz"];

    let x = numbers.par_iter().flat_map(|n| n.parse::<f32>());

    x.for_each(|n| {
        println!("{:?}", n);
    });
}

Related:

  • ParallelIterator::for_each_with https://docs.rs/rayon/1.0.2/rayon/iter/trait.ParallelIterator.html#method.for_each_with
  • ParallelIterator::try_for_each https://docs.rs/rayon/1.0.2/rayon/iter/trait.ParallelIterator.html#method.try_for_each
  • ParallelIterator::try_for_each_with https://docs.rs/rayon/1.0.2/rayon/iter/trait.ParallelIterator.html#method.try_for_each_with

也可以看看:

  • 如何满足迭代器特征界限才能在这里使用 Rayon? https://stackoverflow.com/q/42721458/155423
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法直接消耗人造丝链而不先收集它? 的相关文章

随机推荐

  • 如何强制MySQL将0作为有效的自增值

    长话短说 我有一个 SQL 文件 我想将其导入为skelstyle 文件 因此这将以编程方式重复完成 我可以根据需要编辑 SQL 文件 但我不想碰应用程序本身 该应用程序使用userid 0代表匿名用户 它在数据库中还有一个相关 空白 条目
  • 如何使用鼠标改变OpenGL相机

    我正在尝试在 OpenGL 中设置一个相机来查看 3 维中的一些点 为了实现这一点 我不想使用旧的 固定的功能样式 glMatrixMode glTranslate 等 而是自己设置模型视图投影矩阵并在我的顶点着色器中使用它 正交投影就足够
  • 无法从 Activity 调用 getSupportFragmentManager()

    我有一个有片段的活动 XML
  • woocommerce 下订单前检查邮政编码

    由于本地送货是唯一的选择 由于产品送货限制 我不希望客户进入结帐页面并必须填写他们的所有详细信息 然后才发现我们没有送货到他们的邮政编码 因此 我需要在结帐页面上进行与本地配送邮政编码检查相同的功能 但要在结帐过程的早期阶段添加 例如在购物
  • 何时实现接口以及何时扩展超类?

    我读了很多关于 Java 中的接口和类继承的文章 我知道如何做到这两点 并且我认为我对两者都有很好的感觉 但似乎没有人真正将两者并排比较 并解释何时以及为何要使用其中之一 我没有发现很多时候实现接口会比扩展超类更好 那么什么时候实现接口以及
  • 打开屏幕键盘

    我如何从我的应用程序中打开所有 Mac OS X 中内置的键盘查看器 在 10 5 及更早版本中 这是它的路径 因此只需像平常一样启动它即可 System Library Components KeyboardViewer componen
  • render 在 useEffect 之前调用

    我正在尝试使用 React 和 Leva js 创建一个简单的应用程序 基本上有一个项目数组 每个项目都有一个名称和一个数字数组 Leva 面板包含两个选择 用户可以从项目数组中选择两个项目 如果两个选定的项目具有相同的长度 则可以 否则应
  • 以编程方式将可绘制对象设置为背景

    编辑 抱歉 我从您的评论中意识到我的问题不够清楚 我将发布一个新的 对此深表歉意并感谢您的回答 我正在从 Json 文件填充 ListView With my 列表适配器 我可以轻松地将适当的 json 数据分配给列表的每一行 这对于文本很
  • 为什么浏览器中的 mocha 会抛出从 url 检测到的全局泄漏,而不是从 unc 路径检测到的全局泄漏?

    我正在创建一个 javascript 库并想要使用 BDD 所以我尝试了 mocha 但无法使其工作 我希望在客户端上使用该库 因此我假设让它从可浏览的 url 运行 在 Web 连接的上下文中运行是有意义的 而不仅仅是来自 unc 路径的
  • 用于分布式 DB2 数据库的 Spring Batch Reader

    我正在尝试使用 Spring 批处理框架编写一个作业 作业需要从集群 db2 数据库获取数据 对每个获取的记录调用一些逻辑 然后将转换后的数据存储在同一个数据库中 与读取数据的表不同 我正在尝试写step1如下 Bean public St
  • Mysql 之间和等于在哪里?

    我有一个mysql函数 SELECT FROM stats WHERE BETWEEN 2011 01 03 AND 2011 01 01 AND email email protected cdn cgi l email protecti
  • 如何捕获回击后返回活动的事件

    我的应用程序有一个主屏幕 然后会进入不同的屏幕 每个屏幕都会返回主屏幕 每次用户 返回 主屏幕时我都想做一些事情 我如何捕获这种事件 在您的主活动中使用 onResume 方法或通过重写子活动中的 keyDown 方法在您的活动中使用 st
  • 如何将 Firebase 数据库持久性存储限制为仅某些节点?

    将以下代码添加到AppDelegate将使 Firebase 数据库在用户离线时可用 FIRDatabase database persistenceEnabled true 我们怎样才能使数据库的某些部分在离线模式下可用 而另一些部分在用
  • 获取纸质单选按钮的值

    我有以下代码
  • UITableview 中的自动布局与动态单元格高度

    对于我的表格视图单元格的动态高度 我从此链接中引用 在 UITableView 中使用自动布局来实现动态单元格布局和可变行高 https stackoverflow com questions 18746929 using auto lay
  • Grails 和子域

    Grails 知道有关子域 即 subdomain domain com 的任何信息吗 我没有看到它在manual http grails org doc 2 0 x guide single html 这纯粹是应用程序服务器 网络服务器问
  • Pygame.mixer 模块丢失?

    我正在尝试为朋友制作一个小程序 它需要运行 wav 文件 当我在 python 中运行它时它工作正常 但是当我在 py2exe 中编译它时它给了我这个 gt phone exe 23 RuntimeWarning use mixer DLL
  • 函数参数的模式匹配

    我有一个元组向量 val l for i lt 1 to 5 yield i i 2 Vector 1 2 2 4 3 6 4 8 5 10 我想用以下方式总结一下 l reduce x y gt x 1 y 1 x 2 y 2 15 30
  • C++ 链接错误

    我有多个通过 hxx 头文件和继承连接的类 这都是关于操作系统模拟的 我单独编译它们 看看是否有任何语法错误 但事实并非如此 相反 当我编译主驱动程序 osTester cxx 时 我得到这样的链接错误 include
  • 有没有办法直接消耗人造丝链而不先收集它?

    我使用 Rayon 来产生相当大的返回值 将所有返回值收集到一个中时 这会使用大量内存Vec 有没有办法避免创建Vec并直接作为可迭代对象使用 这是一个不起作用的示例 fn main let numbers Vec lt gt 12 03