Annotations de structures en ligne
Fait partie de la section Introduction à Luau du Journey Lua de Coddy — leçon 37 sur 73.
En Lua, vous utilisez des tables comme records depuis longtemps : local user = {name = "Ana", age = 20}. Rien ne vous empêche de mal orthographier un field, d'en oublier un ou de stocker une string là où un number a sa place — vous ne le découvrez que lorsque le code s'exécute.
Luau vous permet de décrire le shape d'une telle table directement dans la déclaration, en énumérant chaque field et son type entre accolades :
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Comparez cela avec les types de table que vous connaissez déjà : {number} décrit un tableau et {[string]: number} décrit une map avec n'importe quelles clés string. Un shape est plus précis — il nomme chaque field individuellement et donne à chaque field son propre type.
Une fois le shape déclaré, le vérificateur de type vérifie la table par rapport à celui-ci pendant que vous éditez. Un field manquant ou un type de valeur incorrect 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 est une simple table Lua. Les inline shapes sont parfaits pour les structures ponctuelles que vous ne prévoyez pas de réutiliser ; dans la prochaine leçon, vous donnerez un nom aux shapes.
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", le studentId 12345 et isEnrolled true.
Créez une seconde 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'ID 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 tables