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

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

  • [Rust 学习笔记:关于处理任意数量的 future 的练习题](#Rust 学习笔记:关于处理任意数量的 future 的练习题)

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

参考视频:

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

问题一

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

rust 复制代码
    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.

rust 复制代码
async fn map_stringify<I, O, F>(
    inputs: Vec<I>, f: impl Fn(I) -> F,
) -> Vec<String>
where
    O: ToString,
    F: Future<Output = O>,

B.

rust 复制代码
async fn map_stringify<I, O, F>(
    inputs: Vec<I>, f: impl Fn(I) -> O,
) -> Vec<impl Future<Output = String>>
where
    O: ToString,

C.

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

D.

rust 复制代码
async fn map_stringify<I, F>(
    inputs: Vec<I>, f: impl Fn(I) -> F,
) -> Vec<String>
where
    F: Future + ToString,

答:A。

问题三

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

A. yield

B. race / select

C. spawn / spawn_ task

D. join

答:B。

相关推荐
MC皮蛋侠客8 小时前
Tauri 2.x 系列(九):安全模型——Capabilities、Permissions、Scope 与 CSP
rust·tauri
Source.Liu9 小时前
【Dioxus】Windows 环境下 Rust + Dioxus 安装配置笔记
windows·rust·dioxus
zLLM_Lab15 小时前
不装 Python/PyTorch:8.1 MB Rust 程序在 MacBook Air M5 跑多模态大模型
rust
梦醒沉醉16 小时前
std1.97.1——result模块细览
rust
Thneonl18 小时前
同一资源、不同 ID:多源拓扑的 Identity Resolution
架构·rust
绍磊leo19 小时前
【保姆级】dora-rs 一键安装脚本:类ros2的fishros 风格交互菜单 + 国内镜像加速,把坑都替你踩完了
rust·dora-rs
Ramble_Naylor1 天前
只借不占:Rust 的引用与借用
开发语言·rust
k4m7v2pz2 天前
交叉编译 Rust 到 aarch64 Linux 掌机:glibc 版本与 sysroot 重建的完整踩坑记录
rust·glibc·交叉编译·aarch64·zigbuild·sysroot
k4m7v2pz2 天前
用 Rust 重造 Java 的 CLI 分发体验:从 java -jar 到 wasmtime run
rust·跨平台·webassembly·wasmtime·wasi·java-jar
Source.Liu2 天前
【IT】Rust实现win下系统信息采集工具的开发
rust