
async/await
funzioni async, trait Future, runtime tokio, blocchi async, sintassi .await, Streams, Pin<T>, cancellazione, pattern di executor
1Cosa restituisce in Rust una funzione dichiarata con la parola chiave async?
Cosa restituisce in Rust una funzione dichiarata con la parola chiave async?
Risposta
Una funzione async restituisce automaticamente un tipo che implementa il trait Future. Il compilatore trasforma il corpo della funzione in una macchina a stati che implementa Future. Il valore di ritorno non viene calcolato immediatamente: verrà calcolato solo quando il Future viene atteso con .await o eseguito da un runtime.
2Qual è il ruolo principale del trait Future in Rust?
Qual è il ruolo principale del trait Future in Rust?
Risposta
Il trait Future rappresenta una computazione asincrona che potrebbe non essere ancora terminata. Il suo metodo poll consente all'executor di verificare se il Future è pronto (Poll::Ready) o deve attendere (Poll::Pending). È il meccanismo fondamentale dell'asincronia in Rust, che abilita un'esecuzione non bloccante ed efficiente.
3Perché è necessario un runtime come tokio per eseguire codice async in Rust?
Perché è necessario un runtime come tokio per eseguire codice async in Rust?
Risposta
Rust non include un runtime asincrono nella sua libreria standard per mantenere il linguaggio minimale e consentire la scelta del runtime in base alle esigenze. Un runtime come tokio fornisce l'executor che fa poll dei Future, lo scheduler per gestire i task e le I/O asincrone. Senza un runtime, i Future non verrebbero mai eseguiti.
Qual è la differenza tra un async block e una async function in Rust?
Cosa succede quando si usa .await su un Future in Rust?
+19 domande da colloquio
Altri argomenti di colloquio Rust
Fondamenti di Rust
Ownership & Borrowing
Structs & Enums
Gestione degli errori
Collezioni
Moduli e package
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde e serializzazione
Unsafe Rust
Trait avanzati
Lifetime Avanzati
Type System
Tokio & Async I/O
Ottimizzazione delle Prestazioni
Memory Management
Web Frameworks
Database Integration
Design Pattern in Rust
Padroneggia Rust per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis