Annotations de structures en ligne
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 37 sur 73.
En Lua, tu utilises depuis longtemps les tables comme des enregistrements : local user = {name = "Ana", age = 20}. Rien ne t’empêche de mal orthographier un champ, d’en oublier un ou de stocker une chaîne à l’endroit où un nombre est attendu. Tu ne t’en rends compte que lorsque le code s’exécute.
Luau te permet de décrire la forme d’une telle table directement dans la déclaration, en indiquant chaque champ et son type entre accolades :
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Compare cela avec les types de tables que tu connais déjà : {number} décrit un tableau et {[string]: number} décrit une table associative avec des clés de type chaîne quelconques. Une forme est plus précise. Elle nomme chaque champ individuellement et attribue à chaque champ son propre type.
Une fois la forme déclarée, le vérificateur de types vérifie la table par rapport à celle-ci pendant que tu la modifies. Un champ manquant ou une valeur du mauvais type est signalé avant même que le code ne s’exécute :
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ erreur de type : string n'est pas un number
}Comme toujours, l’annotation n’ajoute aucun comportement à l’exécution : la table reste une simple table Lua. Les formes inline sont idéales pour les structures ponctuelles que tu ne prévois pas de réutiliser ; dans la prochaine leçon, tu donneras un nom aux formes.
Défi
FacileCréez une variable nommée student avec une annotation de forme inline déclarant :
namede typestringstudentIdde typenumberisEnrolledde typeboolean
Initialisez-la avec le nom "Sarah Johnson", l’studentId 12345 et isEnrolled true.
Créez une deuxième variable nommée course avec une annotation de forme inline déclarant :
titlede typestringcreditsde typenumberinstructorde typestring
Initialisez-la avec le titre "Introduction to Luau", les crédits 3 et l’instructeur "Dr. Smith".
Affichez, chacun sur sa propre ligne :
- le nom de l’étudiant
- l’identifiant de l’étudiant
- le titre du cours
- le nombre de crédits
Essayez vous-même
-- Écrivez le code ici
-- 1) déclarez student avec une annotation de forme en ligne
-- 2) déclarez course avec une annotation de forme en ligne
-- 3) affichez les quatre champs demandés
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Introduction à Luau
1Premiers pas avec Luau
Qu'est-ce que Luau ?Pourquoi utiliser Luau ?Votre premier code LuauVérification de type et modes d'erreurRécapitulatif : Introduction à Luau4Travailler avec les fonctions
Typage des paramètres et valeurs de retourTypage des fonctions anonymesFonctions ne retournant rienParamètres optionnelsValeurs par défaut des paramètresFonctions variadiquesDéfinition des types de fonctionsRécapitulatif : Fonctions typées2Types fondamentaux
Types de base : num, str, boolLe type 'any' : la porte de sortieLe type 'unknown'Types Nil et optionnelsL'inférence de type en actionAnnotations explicites de typeRécapitulatif : Pratique des types fondamentaux5Alias, unions et intersections
Alias de types pour les types primitifsTypes unionsTravailler avec les types unionsTypes littérauxTypes intersectionsCombinaison d'alias de typesRécapitulatif : Combinaisons de types avancées3Tables typées : Tableaux et Maps
Tableaux typésAjout et lecture d'élémentsQu'est-ce qu'un type Map ?Déclaration et accès aux MapsItération sur les tablesTables à formes mixtesTableaux typés multidimensionnelstable.unpack et VarargsRécapitulatif : Tableaux et Maps6Typage des structures de tables
Annotations de structures en ligneAlias de types pour les structuresPropriétés optionnellesStructures vs tables libresExtension de structuresAjout de méthodes aux structuresMéthodes avec Self et deux-pointsRécapitulatif : Définir des structures de tablesEntraînez-vous par vous-même : Compilateur Lua en ligne