Différences entre les versions de « Programmation Ruby/Méthodes »

aucun résumé de modification
 
En programmation objet, les '''méthodes''' sont les fonctions appartenant à une classe.
En réalité, elles sont des messages envoyé à un objet.
 
En Ruby, elle sont définies de la façon suivante :
def <nom de la méthode> (<*arguments>,&bloc)
<bloc de code de la méthode>
end
 
=== Les arguments ===
Plusieurs méthodes sont prédéfinies dans toutes les classes.
 
Les arguments de de la méthodes forme une liste de référence d'objets.
 
Ils peuvent êtres fournit de façon unique ou en liste via :
 
<source lang="ruby">
def mamethode(param1, *reste)
"mon param1 : #{arg1}" << "et le #{rest.join(', ')}" unless rest.empty?
end
mamethode("toto") » "mon param1 : toto"
mamethode("toto", "titi") » "mon param1 : toto et tutu"
mamethode "toto", "titi", "tutu" » "mon param1 : toto et titi, tutu"
</source>
 
=== Les blocs liés ===
 
Une méthode Ruby peut recevoir en paramètre la référence à un bloc de code tel que :
 
def donnezmoiducode(param)
if block_given?
yield(param)
else
param
end
end
donnezmoiducode("j'ai faim !") » "j'ai faim !"
donnezmoiducode("J'ai faim !") { |s| s = "miam !"') } # => "miam !"
 
 
Si en dernier paramètre de méthode, en prototype, on trouve une déclaration explicite avec une esperluette, alors le bloc est converti en objet Proc et cette objet entre dans la liste de paramètre de la méthode :
 
class BoiteACalculs
def initialize(nom, &bloc)
@nom, @bloc = nom, bloc
end
def application(valeur)
"#{valeur} #{@nom} = #{ @bloc.call(valeur) }"
end
end
calcul = BoiteACalculs.new("Fois deux ") { |val| val * 2 }
calcul. application(10) #=> "10 Fois deux = 20"
calcul. application(20) #=> "20 Fois deux = 40"
 
== le constructeur initialize ==
 
La méthode <tt>initialize</tt>, par exemple, est la méthode appelée lorsqu'une instance est créée via la méthode <tt>new</tt> :
 
18

modifications