MST

星途 面试题库

面试题:Rust异步编程中Future的基本使用

请描述在Rust中如何创建一个简单的Future,并通过`async`/`await`语法来处理异步操作。假设你要实现一个异步函数,它模拟网络请求并返回一个字符串结果,写出具体的代码示例。
21.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
use std::time::Duration;

// 模拟网络请求的异步函数
async fn mock_network_request() -> String {
    // 模拟网络延迟
    tokio::time::sleep(Duration::from_secs(2)).await;
    "Response from network".to_string()
}

#[tokio::main]
async fn main() {
    // 创建一个Future并通过await处理异步操作
    let result = mock_network_request().await;
    println!("{}", result);
}
  1. 首先定义了一个异步函数 mock_network_request,使用 async 关键字标记,这个函数模拟网络请求并返回一个 String 类型的结果。
  2. 在函数内部使用 tokio::time::sleep 模拟网络延迟,await 关键字用于暂停当前异步函数的执行,直到 sleep 操作完成。
  3. main 函数中,同样使用 async 标记为异步函数,并通过 await 等待 mock_network_request 这个 Future 执行完成,获取其返回结果并打印。#[tokio::main] 是Tokio运行时提供的宏,用于在Tokio运行时环境中执行异步代码。