Menu
CoddyTech

Les tableaux génériques

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

Les génériques deviennent vraiment utiles dès qu’on utilise des tables. Tu écris déjà des tableaux typés sous la forme {number} ou {string}. Dans une fonction générique, le type des éléments peut simplement être T, et {T} signifie « un tableau de ce que T se révélera ê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

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

Examine attentivement le type de retour : c’est T?, et non T. Un tableau peut être vide, auquel cas items[1] vaut nil : le type optionnel que tu as rencontré plus tôt l’indique clairement : « un T, ou nil ». Le vérificateur incitera les appelants à gérer le cas nil avant d’utiliser le résultat, ce qui permet précisément de détecter les erreurs comme on l’attend d’un langage typé.

challenge icon

Défi

Facile

Récupère le premier élément de n’importe quel tableau.

  1. Écris local function first<T>(items: {T}): T? qui renvoie items[1].
  2. Déclare local fruits: {string} = {"apple", "banana"} et local empty: {number} = {}.
  3. Affiche first(fruits), puis first(empty).

Appuie sur Exécuter le code : la sortie affiche apple et nil.

Essayez vous-même

-- 1) first<T>(items: {T}): T?
-- 2) fruits: {string} et un {number} vide
-- 3) afficher le premier élément de chacun

Toutes les leçons de Introduction à Luau

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