Rust 学习笔记:关于 Future trait 和 Async 语法的练习题
Rust 学习笔记:关于 Future trait 和 Async 语法的练习题
参考视频:
- https://www.bilibili.com/video/BV1FJZSY4Eaj
如果你想在非异步代码里等待一个 future,应该怎么做?
A. 将 future 包裹在 async 代码块中,并在块中使用 .await
B. 将 future 交给 Rust 内置的 async 运行时
C. 将 future 交给第三方 async 运行时
D. 直接在 future 后面加上 .await
答:C。
下面的异步函数会被展开成哪种类型签名?
async fn calculate(nums: &[i32]) -> i32 {
/* ... */
}
A. fn calculate() -> impl for<'a> Future<Input = &'a [i32], Output = i32> + 'a;
B. fn calculate<'a>(nums: &'a [i32]) -> impl Future<Output = i32> + 'a;
C. fn calculate(nums: &'_ [i32]) -> i32 as Future;
D. fn calculate<'a>(nums: &'a [i32], output: &mut impl Future<Output = i32> + 'a);
答:B。