« Programmation Ruby/Méthodes » : différence entre les versions
Contenu supprimé Contenu ajouté
m <source> -> <syntaxhighlight> (phab:T237267) |
|||
Ligne 15 :
Ils peuvent être fournis de façon unique ou en liste via :
<
def mamethode(param1, *reste)
"mon param1 : #{param1}" << "et le #{reste.join(', ')}" unless reste.empty?
Ligne 22 :
mamethode("toto", "titi") » "mon param1 : toto et titi"
mamethode "toto", "titi", "tutu" » "mon param1 : toto et titi, tutu"
</syntaxhighlight>
=== Les blocs liés ===
Ligne 28 :
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?
Ligne 38 :
donnezmoiducode("j'ai faim !") » "j'ai faim !"
donnezmoiducode("J'ai faim !") { |s| s = "miam !"') } # => "miam !"
</syntaxhighlight>
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 cet objet entre dans la liste de paramètres de la méthode :
<
class BoiteACalculs
def initialize(nom, &bloc)
Ligne 54 :
calcul. application(10) #=> "10 Fois deux = 20"
calcul. application(20) #=> "20 Fois deux = 40"
</syntaxhighlight>
== le constructeur initialize ==
Ligne 60 :
La méthode <code>initialize</code>, par exemple, est la méthode appelée lorsqu'une instance est créée via la méthode <code>new</code> :
<
class Point
def initialize ( x, y )
Ligne 71 :
end
end
</syntaxhighlight>
Ici la méthode <code>initialize</code> définie les variable d'instances @x et @y en fonction des paramètres passés à la fonction <code>new</code>.
Si par exemple on initialise un objet comme suit :
<
p = Point.new(2,3)
# -> @x = 2 et @y = 3
</syntaxhighlight>
== Valeurs par défaut ==
On peut en Ruby donner des valeurs par défaut aux arguments des méthodes.
<
class Parle
def initialize ( nom = "vous" )
Ligne 92 :
end
end
</syntaxhighlight>
Si l'on appelle la méthode sans argument, la valeur par défaut est assigné à la variable d'instance <code>@qui</code>
<
dit = Parle.new
dit.bonjour
# => Bonjour vous
</syntaxhighlight>
Si l'on appelle la méthode avec un argument, celui-ci remplacera la valeur par défaut :
<
dit2 = Parle.new("Roger")
dit2.bonjour
# => Bonjour Roger
</syntaxhighlight>
|