comment trouver toutes les propriétés d'un objet en lua?
Est-il un moyen de récupérer tous les non-nul paramètres /propriétés
d'un objet? J'ai trouvé ceci: getmetadata(self.xxxx)
et je suis à la recherche de quelque chose comme: getalldata(self).
Je suis actuellement en train de travailler sur un projet où lua est impliqué. Malheureusement, il n'y a pas de référence et que je dois utiliser précompilés choses.
J'espère que vous êtes en mesure de comprendre ce que j'essaie de dire.
OriginalL'auteur Florian | 2011-04-12
Vous devez vous connecter pour publier un commentaire.
Je vais supposer que lorsque vous faites référence à des "objets" vous êtes qui signifie "lua tables avec un
__index
métatable pointant vers d'autres tables". Si ce n'est pas le cas, cette réponse ne sera pas vous aider.Si votre objet de la structure est réalisée avec des tables (ce qui est, tous les
__indexes
sont des tables), alors vous pouvez "analyser" pour obtenir toutes les propriétés et les propriétés héritées.Si vous avez n'importe quelle fonction en tant que
__index
alors ce que vous demandez est impossible; il n'y a aucun moyen d'obtenir la "liste des valeurs pour lesquelles la fonction renvoie une non-valeur nil".Dans le premier cas, le code ressemblera à ceci:
Mais rappelez-vous, si l'un de vos
__index
es est une fonction, il n'y a aucun moyen d'obtenir toutes les propriétés; au moins pas de Lua.OriginalL'auteur kikito
Je crois que les objets sont juste une table, de sorte que vous devriez être en mesure d'effectuer une itération sur les propriétés que n'importe quelle autre table:
pairs
au lieu deipairs
.Oui, qui est ce que egarcia inclut dans sa solution plus complète. Merci de remarquer ce bug.
OriginalL'auteur BMitch
J'ai écrit mes propres printObject code.. ici c'est
C'est la démarche inverse le post avant de servir.
Aller à travers toutes les paires clé-valeur dans la table. Si la valeur d'un index est une table, d'aller à travers ce tableau.
Cette solution ne sera pas obtenir de la hausse metatables comme les autres post n'
OriginalL'auteur maniac