Récapitulatif - Table en lecture seule
Fait partie de la section Logique et flux du Journey Lua de Coddy. Leçon 23 sur 54.
Défi
FacileÉcrivez une fonction makeReadOnly qui prend original et renvoie une version en lecture seule de la table.
Créez une table proxy avec une métatable qui permet de lire la table originale, mais empêche toute modification.
Logique :
- Créez une table proxy vide
- Créez une métatable avec
__indexdéfini sur la table originale (pour permettre la lecture) - Ajoutez
__newindexà la métatable, sans action (pour bloquer les modifications) - Attachez la métatable à la table proxy à l’aide de
setmetatable() - Renvoyez la table proxy
Paramètres :
original(table) : La table à protéger contre les modifications
Renvoie : Une table proxy qui fournit un accès en lecture seule à la table originale (table)
Essayez vous-même
function makeReadOnly(original)
-- Écrire le code ici
end
Toutes les leçons de Logique et flux
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() contre ipairs()Récapitulatif - Fiche de personnage4Introduction aux métatables
Qu’est-ce qu’une métatable ?setmetatable et getmetatableLa metaméthode __indexLa metaméthode __newindexLa metaméthode __tostringMétaméthodes arithmétiques - Partie 1Métaméthodes arithmétiques - Partie 2Récapitulatif - Table en lecture seule2Fonctions supplémentaires de la bibliothèque table
table.concat()construction de tables et unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des meilleurs scores3Concepts avancés des fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu’est-ce qu’une fermeture ?Récapitulatif - Gestionnaire d’événements simpleEntraînez-vous par vous-même : Compilateur Lua en ligne