Récapitulatif - Générateur de nombres
Fait partie de la section Logique et flux du Journey Lua de Coddy. Leçon 53 sur 54.
Défi
FacileÉcrivez une fonction createNumberGenerator qui prend count et renvoie une chaîne affichant tous les nombres générés par une coroutine.
Créez une coroutine qui génère des nombres séquentiellement à partir de 1. Chaque fois que la coroutine est reprise, elle doit produire le nombre suivant de la séquence. Reprenez la coroutine count fois pour recueillir tous les nombres générés, puis renvoyez-les sous la forme d’une seule chaîne, avec chaque nombre sur une nouvelle ligne.
Logique :
- Créez une fonction qui utilise une boucle pour produire les nombres 1, 2, 3, etc.
- Encapsulez cette fonction dans une coroutine à l’aide de
coroutine.create() - Reprenez la coroutine
countfois, en recueillant chaque nombre produit - Concaténez tous les nombres en insérant des caractères de nouvelle ligne entre eux
- Renvoyez la chaîne concaténée
Paramètres :
count(nombre) : Le nombre de valeurs à générer à partir de la séquence
Renvoie : Une chaîne contenant tous les nombres générés, séparés par des sauts de ligne (chaîne). Format : 1\n2\n3
Essayez vous-même
function createNumberGenerator(count)
-- Écrivez le code ici
end
Toutes les leçons de Logique et flux
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() contre ipairs()Récapitulatif - Fiche de personnage2Fonctions supplémentaires de la bibliothèque table
table.concat()construction de tables et unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des meilleurs scores3Concepts avancés des fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu’est-ce qu’une fermeture ?Récapitulatif - Gestionnaire d’événements simple6Gestion des erreurs
La fonction error()Appels protégés avec pcall()Récapitulatif - Division sécurisée9Les coroutines pour débutants
Qu’est-ce qu’une coroutine ?créer et reprendre une coroutineMettre en pause avec coroutine.yield()reprendre et céderVérifier l’état d’une coroutineRécapitulatif - Générateur de nombresRécapitulatif - Calcul vectorielEntraînez-vous par vous-même : Compilateur Lua en ligne