Che cos'è una coroutine?
Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 48 di 54.
Pensa a quando giochi a un videogioco. Puoi metterlo in pausa in qualsiasi momento, fare qualcos'altro e poi tornare a riprendere esattamente da dove avevi lasciato. Le coroutine in Lua funzionano in modo simile.
Una coroutine è come una funzione speciale che può sospendersi a metà dell'esecuzione e poi riprendere più tardi esattamente da quel punto. A differenza delle funzioni normali, che vengono eseguite dall'inizio alla fine senza fermarsi, le coroutine ti permettono di controllare quando si sospendono e riprendono.
Questa capacità consente qualcosa chiamato multitasking cooperativo. Invece di eseguire più attività esattamente nello stesso momento, le coroutine ti permettono di passare volontariamente da un'attività all'altra.
Una coroutine viene eseguita per un po', si mette in pausa, ne subentra un'altra, e così via. Ogni coroutine collabora decidendo quando restituire il controllo.
Le coroutine sono utili quando devi suddividere operazioni di lunga durata, gestire sistemi a turni o creare sequenze che devono ricordare il proprio stato tra una chiamata e l’altra. Nelle prossime lezioni imparerai a creare, mettere in pausa e riprendere le coroutine in Lua.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Iterazione avanzata delle tabelle
Iterare con pairs()Iterare con ipairs()pairs() vs. ipairs()Riepilogo - Scheda del personaggio2Altre funzioni della libreria table
table.concat()Costruzione di tabelle e unpack()table.sort()Ordinamento personalizzato con funzioniRiepilogo - Tabellone dei punteggi più alti3Concetti avanzati sulle funzioni
Restituire più valoriFunzioni variadiche (...)Funzioni come valori di prima classeFunzioni anonimeChe cos'è una closure?Riepilogo - Gestore di eventi semplice9Le coroutine per principianti
Che cos'è una coroutine?Creare e riprendere una coroutineMettere in pausa con coroutine.yield()Riprendere e sospendereVerificare lo stato della coroutineRiepilogo - Generatore di numeriRiepilogo - Matematica vettorialeEsercitati da solo: Compilatore Lua online