Rust

async/await

async関数、Futureトレイト、tokioランタイム、asyncブロック、.await構文、Streams、Pin<T>、キャンセル、executorパターン

22 面接問題·
Mid-Level
1

Rustでasyncキーワードを付けて宣言された関数は何を返しますか?

回答

async関数は、Futureトレイトを実装する型を自動的に返します。コンパイラは関数本体をFutureを実装するステートマシンに変換します。戻り値はすぐに計算されるわけではなく、Futureが.awaitで待機されるか、runtimeによって実行されたときにのみ計算されます。

2

RustにおけるFutureトレイトの主な役割は何ですか?

回答

Futureトレイトは、まだ完了していない可能性のある非同期計算を表します。そのpollメソッドにより、executorはFutureが準備完了(Poll::Ready)か、待機が必要(Poll::Pending)かを確認できます。これはRustにおける非同期処理の基本的な仕組みであり、ノンブロッキングで効率的な実行を可能にします。

3

Rustで非同期コードを実行するために、なぜtokioのようなruntimeが必要なのですか?

回答

Rustは、言語を最小限に保ち、必要に応じてruntimeを選択できるようにするため、標準ライブラリに非同期runtimeを含めていません。tokioのようなruntimeは、Futureをpollするexecutor、タスクを管理するscheduler、そして非同期I/Oを提供します。runtimeがなければ、Futureは決して実行されません。

4

Rustにおけるasync blockとasync functionの違いは何ですか?

5

RustでFutureに対して.awaitを使うと何が起こりますか?

+19 面接問題

次の面接に向けてRustをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める