当前位置: 首页 > news >正文

Rust 学习笔记:关于处理任意数量的 future 的练习题

Rust 学习笔记:关于处理任意数量的 future 的练习题

  • Rust 学习笔记:关于处理任意数量的 future 的练习题
    • 问题一
    • 问题二
    • 问题三

Rust 学习笔记:关于处理任意数量的 future 的练习题

参考视频:

  1. https://www.bilibili.com/video/BV154dGYuEv6

问题一

假设 sleep(d) 让程序休眠 d 秒,下面这段代码将执行多少秒?

    let futs: Vec<_>  = [1, 2, 3].iter().map(|n| async move {sleep(Duration::from_secs(5)).await;n + 1}).collect();for fut in futs {let n = fut.await;println!("{n}");}

答:15 秒。

问题二

假设你正在设计一个 map_ stringify 函数,具有以下规范:

  • 接受两个参数:一个输入 Vec 和一个异步函数
  • 该函数将输入转换为输出,并且这些输出可以被转换为字符串
  • 返回一个字符串化的输出 Vec

以下哪种函数类型签名最能准确表达这个规范?

A.

async fn map_stringify<I, O, F>(inputs: Vec<I>, f: impl Fn(I) -> F,
) -> Vec<String>
whereO: ToString,F: Future<Output = O>,

B.

async fn map_stringify<I, O, F>(inputs: Vec<I>, f: impl Fn(I) -> O,
) -> Vec<impl Future<Output = String>>
whereO: ToString,

C.

async fn map_stringify<I, O, F>(inputs: Vec<String>, f: impl Future<Output = String>
) -> Vec<String>

D.

async fn map_stringify<I, F>(inputs: Vec<I>, f: impl Fn(I) -> F,
) -> Vec<String>
whereF: Future + ToString,

答:A。

问题三

假设你正在编写一个程序,该程序需要运行一些异步代码,但每隔 500 ms 检查一次是否应该停止计算。以下哪个辅助函数最适合完成此任务?

A. yield
B. race / select
C. spawn / spawn_ task
D. join

答:B。

相关文章:

  • JS进阶 Day01
  • 多目标粒子群算法可以出pareto图
  • 2025年6月英语四级CET-4作文预测10篇7页PDF
  • 危险品运输行业观察
  • 力扣-279.完全平方数
  • 宝塔面板WordPress中使用Contact Form 7插件收不到邮件的解决方法
  • 深度解析一下 llama.cpp 的源代码
  • 深入解析 JavaScript 抽象类与普通类的本质区别
  • P8784 [蓝桥杯 2022 省 B] 积木画
  • 关于阿里云-云消息队列MQTT的连接和使用,以及SpringBoot的集成使用
  • Docker 下备份 Mariadb 数据库文件
  • 进程和线程的相关命令
  • git checkout 详解
  • 内接圆和外接矩形
  • 1.2、SDH的复用结构
  • Amazon Linux 2023 配置定时任务完全指南:cronie安装与使用
  • SpringBoot的Web应用开发——Web缓存利器Redis的应用!
  • 半导体标准协议 E94 ControlJob学习
  • 目前流行Agent框架对比表
  • 手搓一个记录复制记录的软件,方便快速找到之前复制内容
  • 网站开发PHP留言本/aso应用商店优化
  • 公司建设的网站属于无形资产吗/西安百度网站快速优化
  • 免费0代码开发平台/福州seo推广
  • 苹果给第三方网站做图标/百度信息流广告平台
  • 制作动态网站用什么软件/2024年重大政治时事汇总
  • 手机商城官方网站/网站做成app