Partagez
Aller en bas
avatar
Az'
Membre

Nombre de messages : 3318
Age : 74
Date d'inscription : 22/12/2007

Post-it Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

le Lun 28 Sep 2009 - 13:40
Cela fait longtemps que je vous promettais la suite des cours...
Non, vous ne rêvez pas, je me suis remis au travail!

Voici à présent la suite du cours sur les méthodes, c'est parti!

I° Les arguments

Vous revoilà dans les méthodes.
Maintenant, imaginez-vous dans la classe Rubymen, et puis, imaginez que vous voulez qu’une instance de la classe Rubymen perde n cheveux, comment allez-vous vous y prendre?

Code:
@nombre_de_cheveux = @nombre de cheveux - n

C’est ça, @nombre_de_cheveux représente le nombre de cheveux du Rubymen, comme vous devez vous en douter, ce n’est pas plus compliqué.
Imaginez maintenant que vous êtes dans la classe Attitude, et que vous voulez que le Rubymen perde 382 cheveux.
Là, comment allez-vous vous y prendre ? Certainement pas avec une formule comme cela :

Code:
@nombre_de_cheuveux = @nombre_de_cheveux - 10

Vous pourriez créer une méthode spécifique pour qu’il perde 382 cheveux contenant l’opération à effectuer comme ça :

Code:
def perdre_382_cheveux
@nombre_de_cheuveux = @nombre_de_cheuveux - 382

Mais, dans ce cas, il faudrait faire une méthode pour tous les chiffres !
La solution, c’est bien évidemment de se servir d’un ARGUMENT. C’est pas compliqué, au lieu de déclarer votre méthode comme cela :

Code:
def perdre_cheveux

Vous allez la déclarer comme ceci, en précisant qu’il faut entrer un argument lorsque l’on appelle cette méthode :

Code:
def perdre_cheveux(nombre)

Vous allez me demander ce que ça change, bah…
Lorsque vous définissez votre méthode, vous allez imaginer qu'une variable nommée nombre existe déjà, et que celle-ci a été définie par l'appelant, quel qu'il soit :

Code:
def perdre_cheveux(nombre)
    @nombre_de_cheveux = @nombre_de_cheveux - nombre
end

Vous n’avez pas précisé ce que vaut nombre, et vous n’aurez pas à le faire.
Cette variable nombre est définie lors de l’appel de la méthode :

Code:
rubymen.perdre_cheveux(382)

Là, j’ai entré un nombre, mais vous pouvez mettre d'autres valeurs comme argument.

II° Précision

Ce que je vais rajouter, c’est qu’en Ruby, les arguments ont un point fort, qui se révèle aussi être leur point faible : ils ne sont pas typés, cela veut dire qu'on ne précise pas si l'argument doit être un tableau, un nombre, ou un RubyMen par exemple, ce qui permet de faire des choses très pratique, mais qui peut aussi provoquer des problèmes si on ne fait pas attention, j'ai appelé mon argument nombre, parce que je veux recevoir un nombre, mais ce n'est qu'un nom, je peux recevoir n'importe quoi, et la méthode va se dérouler jusqu'à rencontrer un problème (par exemple additionner une chaîne de caractère avec un nombre comment dire… ça va pas l’faire ^^").

Comme ici :

Code:
def add_actor(id)
    [ contenu de la méthode...]
end

Il suffit de voir le nom de l'argument : id.
Vous saurez donc que vous devrez donner l'id du joueur à ajouter à l'équipe.
Lorsque vous créez une méthode, donnez des noms explicites à vos arguments!

Allez, le prochain cours sera exclusivement sur les variables, préparez-vous à suivre, et si vous avez zappé quelque-chose, envoyez-moi un MP Wink


Dernière édition par Mist' le Lun 28 Sep 2009 - 21:18, édité 1 fois
Anonymous
Invité
Invité

Post-it Re: Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

le Lun 28 Sep 2009 - 16:10
Mercii du tuto, depuis le temps qu'on l'attendait

Très bon tuto
Berka
Berka
Administrateur

Nombre de messages : 1831
Age : 28
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Post-it Re: Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

le Lun 28 Sep 2009 - 18:36
Bravo pour le tuto ! Ca va aider pas mal de monde et clarifier un peu les scripts.
Mais tu pourrais parler des arguments optionnels: def methode(arg="exemple")


berka
dricc
dricc
Membre

Nombre de messages : 2757
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Post-it Re: Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

le Lun 28 Sep 2009 - 18:45
Change juste :

Code:
def perdre_cheveux(nombre)
    @nombre_de_cheveux = @nombre_de_cheveux – nombre
end

en :

Code:
def perdre_cheveux(nombre)
    @nombre_de_cheveux = @nombre_de_cheveux - nombre
end

Et ce sera parfait Wink
avatar
Az'
Membre

Nombre de messages : 3318
Age : 74
Date d'inscription : 22/12/2007

Post-it Re: Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

le Lun 28 Sep 2009 - 20:42
@Berka : Oui, je vais écrire cette partie, merci de me l'avoir fait remarquer Wink

@Dric' : Ah, ça a planté, désolé de la gène, je rectifie, merci Wink
lafius
lafius
Membre

Nombre de messages : 2
Age : 29
Distinction : aucune
Date d'inscription : 18/10/2009

Post-it Re: Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

le Jeu 14 Jan 2010 - 19:30
Super pour ce 2ème tuto...
Berka
Berka
Administrateur

Nombre de messages : 1831
Age : 28
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Post-it Re: Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

le Jeu 14 Jan 2010 - 19:36
Bonsoir,

1) Merci d'aller te présenter. C'est la moindre des choses quand on rencontre des gens.
2) Ton post était-il utile ? Valait-il le coup de déterrer un aussi vieux sujet ?
3) Merci quand meme de l'intéret que tu portes aux tutos. Le ruby, c'est... génial

berka
Contenu sponsorisé

Post-it Re: Tutorial Ruby III : Les arguments (Partie 2 de méthodes)

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum