« Ruby/Méthodes » : différence entre les versions

Contenu supprimé Contenu ajouté
Guillpetiot (discussion | contributions)
Page créée avec « Dans ce chapitre, nous verrons ce que sont les '''''fonctions''''', ou peut-être devrais-je dire les '''''méthodes'''''. Comme en Ruby tout est objet, toutes les fonctions ... »
(Aucune différence)

Version du 17 juillet 2009 à 12:29

Dans ce chapitre, nous verrons ce que sont les fonctions, ou peut-être devrais-je dire les méthodes. Comme en Ruby tout est objet, toutes les fonctions sont des méthodes. Dans ce contexte, on peut donc considérer que ces deux termes sont interchangeables, ainsi je les utiliserai tous deux pour désigner la même chose. Pour les désigner, nous pouvons également utiliser le terme de sous-programme.

Définition

Une méthode est un ensemble d'instructions réalisant une certaine tâche (par exemple : faire une addition, créer une fenêtre, etc.). La définition des méthodes débute par le mot-clé def et se clôt par un end.

Début de l'exemple
Fin de l'exemple



Une fonction peut prendre des paramètres (ou arguments) lors de l'appel, nous le verrons à la fin du chapitre.

Elle peut également avoir une valeur de retour, mais ce n'est pas obligatoire.


Pprocédures

Pour comprendre, rien de mieux qu'un petit exemple, considérons une procédure qui dit "bonjour" et ne renvoie rien :

Début de l'exemple
Fin de l'exemple


Cette procédure ne fait qu'un affichage. Pour l'utiliser (j'utiliserai à présent le terme d'appel de fonction / procédure / méthode), on se contente de :

Début de l'exemple
Fin de l'exemple


L'appel est similaire à celui de puts ou print, que nous avons déjà utilisées. Une procédure peut contenir à peu près tout ce que vous voulez. Les procédures peuvent par exemple vous éviter de devoir réécrire plusieurs fois des blocs d'instructions identiques que vous appelez souvent : vous écrivez une fois la procédure et vous l'appellerez plusieurs fois.

Fonctions avec valeur de retour

Ici aussi un exemple vous aidera à comprendre de suite. Nous allons considérer une fonction somme, effectuant la somme de deux entiers, mais comme nous n'avons pas encore approfondi le passage de paramètres, nous utiliserons des variables déclarées en dehors de la fonction :

Début de l'exemple
Fin de l'exemple


Ce que vous devez remarquer dans ce code est le mot-clé return, celui-ci retourne une valeur et met fin à la fonction (si vous avez d'autres instructions après, elles ne seront pas exécutées). Ici somme retourne 4 + 5, soit 9. Cette valeur peut être récupérée lors de l'appel, dans notre exemple, nous l'utilisons avec puts pour faire un affichage, mais nous pouvons tout aussi bien faire :

Début de l'exemple
Fin de l'exemple


Une telle fonction peut aussi être appelée comme une procédure, c'est-à-dire sans récupérer sa valeur de retour, mais avouez que l'intérêt est minime.


Paramètres

Nous avons déjà vu avec puts et print que vous pouvez passer des arguments à vos fonctions.


Ainsi, on va pouvoir réécrire notre fonction somme de la sorte :

Début de l'exemple
Fin de l'exemple


Si une fonction possède des arguments, ils doivent être précisés lors de l'appel :

Début de l'exemple
Fin de l'exemple



Dans notre exemple, les variables désignées par x et y sont locales à la fonction : si leur nom était déjà utilisé pour des variables déclarées en dehors de la fonction, il est "masqué" par ces variables locales. Considérons par exemple :

Début de l'exemple
Fin de l'exemple


Dans cet exemple, la variable locale x, contient la valeur 4 (obtenue lors de l'appel), et non 7.