Le Cast
Fait partie de la section Fundamentals du Journey Lua de Coddy — leçon 32 sur 90.
Pour convertir l'entrée en un type différent, nous devons effectuer un transtypage (cast).
Pour convertir une chaîne de caractères en nombre, nous écrirons :
var = io.read()
var = tonumber(var)Ou en une seule ligne,
var = tonumber(io.read())Si l'entrée est un nombre, c'est-à-dire 5, 4, 54 alors var contiendra un nombre. Si l'entrée contient un nombre invalide : 5ab, bb, akt, etc. alors tonumber() retournera nil.
Voici un tableau qui montre comment effectuer des conversions vers différents types :
| Conversion | Explication |
| tonumber() | Convertir en un nombre |
| tostring() | Convertir en une chaîne de caractères |
Il est important d'utiliser le bon type car cela peut affecter le résultat.
La concaténation de deux chaînes donnera :
"5" .. "5" = "55"
L'addition de deux nombres donnera :
5 + 5 = 10
Défi
DébutantDans ce défi, vous allez travailler avec plusieurs entrées et effectuer des calculs.
Comment recevoir plusieurs entrées :
var1 = io.read() -- Première entrée
var2 = io.read() -- Deuxième entréeVotre tâche :
- Lire le premier nombre depuis l'entrée et le stocker dans une variable
- Lire le deuxième nombre depuis l'entrée et le stocker dans une autre variable
- Convertir les deux variables en type number (pour les calculs numériques)
- Calculer la multiplication de ces deux nombres
- Afficher le résultat
Exemple :
Si les entrées sont 2 et 4.5, votre programme doit afficher 9.0
Rappel : Chaque cas de test contient exactement deux entrées, l'une après l'autre.
Aide-mémoire
Le casting en Lua :
-- Convertir une chaîne en nombre
var = tonumber(io.read())
-- Convertir en chaîne
var = tostring(io.read())
-- tonumber renvoie nil pour une entrée invalide
var = tonumber("abc") -- var est nilImportant : La concaténation de chaînes les assemble, tandis que l'addition de nombres effectue un calcul arithmétique :
"5" .. "5" = "55" -- Concaténation de chaînes
5 + 5 = 10 -- Addition numériqueEntrées multiples :
var1 = io.read()
var2 = io.read()Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
4Opérateurs 2 : Relationnels et Logique
Opérateurs d'égalitéOpérateurs relationnelsL'opérateur 'and'L'opérateur 'or'L'opérateur 'not'Évaluation court-circuitValeurs Truthy et FalsyRécapitulatif - Logique simple7Logique conditionnelle de base
L'instruction if-thenL'instruction if-then-elseL'instruction elseifRécapitulatif - Le coffre au trésor10Tables Partie 1 : Style Liste
Qu'est-ce qu'une Table ?Créer une TableAccéder aux éléments par indexModifier des éléments par indexL'opérateur de longueur '#'table.insert()table.remove()Récapitulatif - Gérer les membres du groupe13Projet : Boutique de potions simple
Configuration du projetAjouter une potion2Variables et types de données
Qu'est-ce qu'une variable ?Les nombresLes chaînes de caractèresLes booléensLa valeur 'nil'La fonction type()Conventions de nommageRécapitulatif - Profil de personnage5Affichage de base
Afficher des littérauxAfficher des variablesAfficher plusieurs valeursCombiner des chaînes et des variablesLa fonction tostring()EntréeLe CastRécapitulatif - Rapport d'étatRécapitulatif - Jusqu'à 1208Bases de la manipulation de chaînes
string.len()string.upper et string.lowerstring.sub()string.rep()string.find()Récapitulatif - Formater le nom d'utilisateur3Opérateurs 1 Arithmétique & Conc.
Opérateurs arithmétiquesOpérateur moduloOpérateur d'exponentiationConcaténation de chaînesPriorité des opérateursRécapitulatif - Calculs simples6Projet : Affichage des stats du personnage
Message de bienvenueDéclarer les statistiques du personnage9Bases des fonctions
Déclarer une fonctionAppeler une fonctionFonctions avec paramètresFonctions avec plusieurs paramètresL'instruction 'return'Récapitulatif - Calculateur d'aire