Accueil - Forum - Bibliothèque de ressources
____

Méthodes : Partie 2

1) Conventions de nommage.

Le dernier caractère des méthodes permettent de définir certaines propriétés aux méthodes. Nous allons en voir deux :
- Le point d'interrogation (?)
- Le point d'exclamation (!)

a) Le point d'interrogation

Si le nom de la méthode termine par un "?" alors celui ci retourne un booléen (true ou false)

Exemple :

Code Ruby# Vérifie si le nombre est un entier :
5.integer? # Renvoie true
5.0.integer? # Renvoie false puisque 5.0 est un float

b) Le point d'exclamation

Le point d'exclamation à la fin de nom de la méthode signifie qu'elle est destructive c'est à dire qu'elle modifie l'objet elle même.

Voici un exemple clair :

Code Rubytab = [2, 4, 1, 7, 3]
puts tab.sort
puts tab

Tout d'abord, on initialise le tableau. Ensuite, on affiche le tableau trié. Enfin, on affiche le tableau qu'on a déclaré. Voici l'affichage :

1 2 3 4 7 2 4 1 7 3

Si maintenant vous mettez le point d'exclamation à la méthode sort :

Code Rubytab = [2, 4, 1, 7, 3]
puts tab.sort!
puts tab

On affiche le tableau créé et on modifie le tableau tab. on affichera donc ensuite le tableau trié. Résultat :

1 2 3 4 7 1 2 3 4 7

2) Arguments ayant des valeurs par défaut

Voici un exemple :

Code Rubydef nom(nom_heros = "Link")
 puts "Nom du heros : " + nom_heros
end

nom
nom("Sam")

Dans cette exemple, on donne une valeur par défaut à l'argument "nom_heros". Comme cela, si vous ne mettez pas d'argument à l'appel de la méthode, cette dernière prendra la valeur par défaut.

L'affichage est la suivante :

Nom du heros : Link Nom du heros : Sam

3) Arguments en nombre indéfinie

En mettant une étoile "*" devant l'argument, vous définissez un nombre de variable d'arguments à une méthode.

Voici encore un exemple :

Code Rubydef nom(*nom_heros)
 
 puts nom_heros
 puts nom_heros[0]

end

nom("Sam", "Link")
nom()

Le premier appel de la méthode affiche "nom_heros" donc :

Sam Link

"nom_heros" est un tableau. Donc "nom_heros[0]" affichera le premier élément : Sam
A votre avis, qu'est qu'affichera le deuxième appel : "nom()" ?
Etant donné qu'il n'y a pas d'argument, ça affichera "nil"

Exercice :

Qu'est ce que le code suivant affiche :

Code Rubydef nom(qui, *nom_heros)
 
 puts nom_heros[qui + nom_heros.size - 2]

end

nom(0, "Link", "Sam")

Si vous avez compris, ça affiche "Link".
A l'appel de la méthode :

"qui" vaut 0
"nom_heros.size" est la taille du tableau "nom_heros" : 3
Donc : nom_heros[0 + 3 - 2] est nom_heros[1] :)

4) Alias

Le mot clé "alias" permet de faire une copie d'une méthode en mettant son propre nom. Les alias peut être utilisé lorsque vous changer les actions d'une méthode ou d'accéder à des méthodes qui ont fait l'objet d'une surcharge.

Code Rubydef metho
  puts "Ma methode"
end

alias new_metho metho

metho            # Affiche "Ma methode"
new_metho        # Affiche "Ma methode" aussi

Le nom des méthodes sont différentes mais le résultat est le même.

Informations
Page vue 2224 fois | Auteur : Samarium

RPG Creative version 5 - Libérez votre créativité ! ; Mai 2005 - Mai 2012
0.034s - Optimisé pour une résolution 1024*728 - Tous droits réservés.

Contact - Partenaires - Historique - A propos