µLua DS - Forum officiel | Official forum Forum Index

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Trucs et astuces ~
Goto page: <  1, 2, 3, 4, 5, 6
 
Post new topic   Reply to topic    µLua DS - Forum officiel | Official forum Forum Index -> Section française -> Divers -> Autour de µLua
Previous topic :: Next topic  
Author Message
Lolman
Modérateur

Offline

Joined: 02 Aug 2011
Posts: 811

PostPosted: Wed 1 Feb 2012 - 13:44    Post subject: Trucs et astuces ~ Reply with quote

Il est évidemment qu'on déclarer des attributs en dehors.
Code:
tableau.attr = 5;
tableau.method = function()
  return "lawl";
end
function tableau:method2()
  return "lol";
end

ou un truc dans le genre.
Pour la déclaration avec les ":", je l'ai déjà vu, mais je sais pas si on peut utiliser "this" ou "self" à l'intérieur, dans ce cas...

Et pour l'objet String qui existe pas, il faut juste faire ce qui suit.
Code:
function center(str)
  -- ...
end

_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Back to top
Visit poster’s website
Publicité






PostPosted: Wed 1 Feb 2012 - 13:44    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Wed 1 Feb 2012 - 18:33    Post subject: Trucs et astuces ~ Reply with quote

Lolman wrote:
Il est évidemment qu'on déclarer des attributs en dehors.
Code:
tableau.attr = 5;
tableau.method = function()
  return "lawl";
end
function tableau:method2()
  return "lol";
end

ou un truc dans le genre.

J'ai pas dis que tu ne pouvais pas hein, relis.

Bien sur que tu peux, on le fait tous pour les tableaux, mais là dans ton cas c'était censé se faire en suivant les principes objets, et dans ce cas là, déclarer en dehors ca n'a aucun sens.

Pour ta seconde fonction bah, ouai, c'est une alternative de ma première fonction quoi.

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
Ced-le-pingouin


Offline

Joined: 16 Jan 2009
Posts: 559
Localisation: Belgique

PostPosted: Thu 2 Feb 2012 - 09:08    Post subject: Trucs et astuces ~ Reply with quote

Fantasix wrote:
Depuis quand on peut déclarer une fonction avec des ":" en Lua ? Fuuuuuu J'ai du rater un épisode, voir deux.

Mais bon, ca reste bizarre étant donné que les méthodes sont sensées êtres déclarées dans l'objet et non en dehors.

"Classe", c'est un peu trop dit comme ça x_x'

Pour moi ça reste de vieux tableaux en Lua. On les utilise à la façon objet, mais c'en est pas vraiment.

Fanta'


Depuis quand? Depuis le début Smile

Pour les déclarations, tout comme pour les appels, c'est juste un raccourci.
Ca déclare la fonction avec "self" comme premier paramètre, sans que tu doives l'écrire toi-même.
En quelque sorte, ça marque l'intention dans ton code d'utiliser cette fonction comme une méthode dans une "classe".

Je le fais tout le temps: http://code.google.com/p/microlua-sim/source/browse/trunk/clp/Logger.lua

(rhaaa, de revoir du Lua comme ça, ça me redonne vachement envie d'en refaire, quel langage concis et agréable - faudrait que je trouve le temps Neutral )


Back to top
Papymouge
Modérateur

Offline

Joined: 10 May 2009
Posts: 693
Localisation: Vittel (88)

PostPosted: Thu 2 Feb 2012 - 09:47    Post subject: Trucs et astuces ~ Reply with quote

Il me semble que les ':' sont la pour éviter de mettre self.

Voir la page du manuel lua ici : http://www.lua.org/pil/16.html
_________________
La page de mes projets
L'ancienne page de mes projets


Back to top
Ced-le-pingouin


Offline

Joined: 16 Jan 2009
Posts: 559
Localisation: Belgique

PostPosted: Thu 2 Feb 2012 - 10:48    Post subject: Trucs et astuces ~ Reply with quote

Oui. Et dans les déclarations, et dans les appels.

EDIT: en fait, dans les appels, c'est pas vraiment le self qui est évité, c'est le nom de l'objet/instance sur lequel on appelle la fonction, mais dans les deux cas, ça "tape" de manière invisible un paramètre à ta place, et évite une duplication inutile Smile


Back to top
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Thu 2 Feb 2012 - 15:03    Post subject: Trucs et astuces ~ Reply with quote

Hum ok ...

J'crois que j'vais devoir enlever mes self dans la déclaration des méthodes de mes objets alors x)

Ça fera plus propre, merci Smile


Edit : Euh nan j'retire ce que j'ai dis en fait xD

Si on déclare les méthodes dans l'objet (A voir ici comme un array), on est obligé de mettre le self.

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
Reylak
Administrateur

Offline

Joined: 24 Nov 2008
Posts: 2,838
Localisation: Toulouse

PostPosted: Thu 2 Feb 2012 - 18:29    Post subject: Trucs et astuces ~ Reply with quote

http://microlua.xooit.fr/t358-Les-Metatables.htm

Bonjour, je fais de la pub pour mon vieux "tuto" =D
_________________


Plein d'infos sur le SourceForge !


Back to top
Visit poster’s website MSN Skype
Lolman
Modérateur

Offline

Joined: 02 Aug 2011
Posts: 811

PostPosted: Thu 2 Feb 2012 - 18:33    Post subject: Trucs et astuces ~ Reply with quote

Quote:
(rhaaa, de revoir du Lua comme ça, ça me redonne vachement envie d'en refaire, quel langage concis et agréable - faudrait que je trouve le temps Neutral )

Sentiment partagé !

Quote:
Bien sur que tu peux, on le fait tous pour les tableaux, mais là dans ton cas c'était censé se faire en suivant les principes objets, et dans ce cas là, déclarer en dehors ca n'a aucun sens.

Je l'ai pourtant déjà fait, et ça me parait normal puisque les objets sont des tableaux. D'ailleurs, c'est un concept que j'apprécie beaucoup !
_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Back to top
Visit poster’s website
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Thu 2 Feb 2012 - 19:17    Post subject: Trucs et astuces ~ Reply with quote

Pour moi, déclarer une méthode en dehors de l'objet lui même, ce n'est pas normal.

Dans chacun des langages objets que j'ai pu voir, la déclaration se faisait dans l'objet, et non après avoir crée l'objet.

Regarde la classe Timer de Lua, c'est un très bon exemple.

En gros, ça donnerais ça si on déclarait en dehors :

Code:
Timer = {}

Timer:new = function()
   
   -- Blablabla bla ?
   
end

Timer:start = function()
   
   -- Blablabla
   
end

Mon dieu, rendez moi mes yeux !

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
Ced-le-pingouin


Offline

Joined: 16 Jan 2009
Posts: 559
Localisation: Belgique

PostPosted: Thu 2 Feb 2012 - 19:53    Post subject: Trucs et astuces ~ Reply with quote

Euh, ça c'est vraiment une question de tournure d'esprit.

Moi ça ne me choque pas du tout, justement parce que, contrairement à Java ou C++, Lua n'est pas un langage purement objet. Il s'adapte à différentes façons de programmer.

En fait, ça me choque encore moins en venant du Javascript (j'en ai fait pas mal à une époque), qui a un peu la même flexibilité. La façon de programmer "objet" en JS est un peu similaire. On peut aussi "attacher" les "méthodes" à une "classe" après coup.

D'ailleurs, au niveau performances ou autre, en Lua, le fait de tout déclarer d'un coup dans une table, ou au fur et à mesure du fichier, n'a aucune incidence. Je préfère la 2ème méthode, je trouve ça moins chiant au niveau séparateurs, qu'on est obligé de placer entre chaque élément de table quand on définit tout d'un coup (je trouve ça moins lisible et plus sujet aux erreurs).
Mais bon, ça reste une préférence perso Smile


Back to top
Fantasix
Modérateur

Offline

Joined: 26 Apr 2010
Posts: 1,317
Localisation: SCREEN_UP, en -1, -1

PostPosted: Thu 2 Feb 2012 - 20:34    Post subject: Trucs et astuces ~ Reply with quote

Hum, ouai ça doit être une histoire de goût.

J'trouve que ça fait "fouillis", mais j'comprend Smile

Les virgules, on s'y fait :p

Fanta'
_________________


BMA News :

Création du Homebrew Storage en cours ...


Back to top
Visit poster’s website
Lolman
Modérateur

Offline

Joined: 02 Aug 2011
Posts: 811

PostPosted: Fri 3 Feb 2012 - 18:40    Post subject: Trucs et astuces ~ Reply with quote

Quote:
Pour moi, déclarer une méthode en dehors de l'objet lui même, ce n'est pas normal.

Je comprends, mais je préfère procéder comme ça pour ajouter mes propres couches aux objets de bibliothèques dont je ne souhaite pas toucher les fichiers.

Dans Javascript... Les objets sont des dictionnaires, c'est bien ça ? Comme dans Lua. Je me demande par contre si le type "Array" de Javascript n'est pas simplement un objet qui n'a que des Number en clé.
_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Back to top
Visit poster’s website
Display posts from previous:   
Post new topic   Reply to topic    µLua DS - Forum officiel | Official forum Forum Index -> Section française -> Divers -> Autour de µLua All times are GMT + 1 Hour
Goto page: <  1, 2, 3, 4, 5, 6
Page 6 of 6

 
Jump to:  

Index | Create a forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group