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

m
<source> -> <syntaxhighlight> (phab:T237267)
m (<source> -> <syntaxhighlight> (phab:T237267))
 
Ils peuvent être fournis de façon unique ou en liste via :
 
<sourcesyntaxhighlight lang="ruby">
def mamethode(param1, *reste)
"mon param1 : #{param1}" << "et le #{reste.join(', ')}" unless reste.empty?
mamethode("toto", "titi") » "mon param1 : toto et titi"
mamethode "toto", "titi", "tutu" » "mon param1 : toto et titi, tutu"
</syntaxhighlight>
</source>
 
=== Les blocs liés ===
Une méthode Ruby peut recevoir en paramètre la référence à un bloc de code tel que :
 
<sourcesyntaxhighlight lang="ruby">
def donnezmoiducode(param)
if block_given?
donnezmoiducode("j'ai faim !") » "j'ai faim !"
donnezmoiducode("J'ai faim !") { |s| s = "miam !"') } # => "miam !"
</syntaxhighlight>
</source>
 
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 :
 
<sourcesyntaxhighlight lang="ruby">
class BoiteACalculs
def initialize(nom, &bloc)
calcul. application(10) #=> "10 Fois deux = 20"
calcul. application(20) #=> "20 Fois deux = 40"
</syntaxhighlight>
</source>
 
== le constructeur initialize ==
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> :
 
<sourcesyntaxhighlight lang="ruby">
class Point
def initialize ( x, y )
end
end
</syntaxhighlight>
</source>
 
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 :
<sourcesyntaxhighlight lang="ruby">
p = Point.new(2,3)
# -> @x = 2 et @y = 3
</syntaxhighlight>
</source>
 
== Valeurs par défaut ==
On peut en Ruby donner des valeurs par défaut aux arguments des méthodes.
<sourcesyntaxhighlight lang="ruby">
class Parle
def initialize ( nom = "vous" )
end
end
</syntaxhighlight>
</source>
 
Si l'on appelle la méthode sans argument, la valeur par défaut est assigné à la variable d'instance <code>@qui</code>
<sourcesyntaxhighlight lang="ruby">
dit = Parle.new
dit.bonjour
# => Bonjour vous
</syntaxhighlight>
</source>
 
Si l'on appelle la méthode avec un argument, celui-ci remplacera la valeur par défaut :
<sourcesyntaxhighlight lang="ruby">
dit2 = Parle.new("Roger")
dit2.bonjour
# => Bonjour Roger
</syntaxhighlight>
</source>
1 535

modifications