sebcbien Posté(e) le 29 novembre 2015 Signaler Partager Posté(e) le 29 novembre 2015 Bonjour, J'utilise depuis peu un développement du style: mais je me demande s'il n'y a pas mieux/plus efficace.. function Engine:test2(debugmessage) voici un petit test: Engine = {}; Engine.var1 = "petit test 2"; Engine.list1 = {"bonjour", "demain"}; Engine.test = function(debugmessage) fibaro:debug(debugmessage) end function Engine:test2(debugmessage) fibaro:debug(debugmessage) end Engine:test(Engine.var1) Engine.test(Engine.var1) Engine:test(Engine.list1) Engine.test(Engine.list1) fibaro:debug("----------------------------") Engine:test2(Engine.var1) Engine.test2(Engine.var1) Engine:test2(Engine.list1) Engine.test2(Engine.list1) ce qui donne: [DEBUG] 16:54:38: table: 0x94c1e68 [DEBUG] 16:54:38: petit test 2 [DEBUG] 16:54:38: table: 0x94c1e68 [DEBUG] 16:54:38: table: 0x94c29d8 [DEBUG] 16:54:38: ---------------------------- [DEBUG] 16:54:38: petit test 2 [DEBUG] 16:54:38: nil [DEBUG] 16:54:38: table: 0x94c29d8 [DEBUG] 16:54:38: nil Quelle est la méthode la plus efficace ? Je vois que @steven utilise dans gea cette méthode-ci: Engine.test = function(debugmessage) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Krikroff Posté(e) le 1 décembre 2015 Signaler Partager Posté(e) le 1 décembre 2015 Peut importe en fait au niveau performance c'est pareil et donc tout aussi efficace. Mais attention [.] et [:] entre l'espace de nom (ici en LUA une table) et la définition de la fonction ne donne pas le même résultat. Pour mémoire: function Engine:test(debugmessage) end équivaut à Engine.test = function(self, debugmessage) end self représente ici Engine permet d’accéder directement aux "membres" de cette table , en lua le fait d'utiliser l'opérateur [:] oblige la table à ce passer elle en argument (en référence) lorsqu'elle appelle la méthode. Lien vers le commentaire Partager sur d’autres sites More sharing options...
sebcbien Posté(e) le 2 décembre 2015 Auteur Signaler Partager Posté(e) le 2 décembre 2015 Merci krikroff, pas sur d'avoir saisi toutes les nuances de ta réponse, mais le principal c'est que ce soit équivalent :-) Je pense que je vais utiliser àl'avenir le [.] .... C'est plus joli ;-) Sent from my Note4 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 2 décembre 2015 Signaler Partager Posté(e) le 2 décembre 2015 Seb, si ça peut t'aider, j'avais vaguement compris cette histoire de self avec ce lien : http://www.lua.org/pil/16.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenjyNet Posté(e) le 3 décembre 2015 Signaler Partager Posté(e) le 3 décembre 2015 Ça me fait penser au C++ votre truc là..... àl'époque j'en avait chié avec cette histoire d'objet ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés