Menu
Coddy logo textTech

Les tableaux génériques

Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 60 sur 73.

Les génériques deviennent vraiment utiles dès que des tables sont impliquées. Vous écrivez déjà des tableaux typés sous la forme {number} ou {string}. À l'intérieur d'une fonction générique, le type des éléments peut simplement être T, et {T} signifie « un tableau de tout ce que T s'avère être ».

Voici l'exemple classique : récupérer le premier élément de n'importe quel tableau :

local function first<T>(items: {T}): T?
    return items[1]
end

Passez un {string} et le vérificateur déduit T = string, le résultat est donc une chaîne de caractères. Passez un {number} et c'est un nombre. Une seule fonction remplace toute une famille de copies spécifiques à chaque type.

Observez attentivement le type de retour : c'est T?, et non T. Un tableau peut être vide, et dans ce cas items[1] vaut nil : le type optionnel que vous avez découvert précédemment l'indique honnêtement : « un T, ou nil ». Le vérificateur incitera les appelants à gérer le cas nil avant d'utiliser le résultat, ce qui correspond exactement au type de détection de bugs que vous attendez d'un langage typé.

challenge icon

Défi

Facile

Crée une fonction générique nommée first qui :

  • déclare un paramètre de type T
  • accepte un paramètre nommé items de type {T}
  • renvoie le premier élément, avec le type de retour T? (il vaut nil pour un tableau vide)

Crée ces tableaux typés :

  • fruits de type {string} avec "apple", "banana", "cherry"
  • scores de type {number} avec 10, 20, 30, 40
  • flags de type {boolean} avec false, true
  • empty de type {string} sans aucun élément

Affiche le résultat de l'appel à first avec chaque tableau, dans cet ordre, chacun sur sa propre ligne.

Essayez vous-même

-- Écrivez le code ici
-- 1) définir first<T>(items: {T}): T? retournant items[1]
-- 2) créer fruits: {string}, scores: {number}, flags: {boolean},
--    et un tableau {string} vide
-- 3) afficher first(...) de chaque tableau, dans cet ordre
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur Lua en ligne