Fonctions
Qu’est-ce qu’une fonction?
Une fonction est une méthode qui n’est pas associée à un objet en particulier.
Vous avez déjà utilisé une fonction auparavant: puts. Remarquez bien la syntaxe:
puts "Salut!" # à la place de: un_objet.puts "Salut!"
«Bonjour monde» avec une fonction
Voici une fonction toute simple:
def bonjour
puts "Bonjour monde!"
end
Maintenant, nous avons défini la fonction bonjour. Le code qu’elle contient sera exécuté à chaque appel de la fonction. Un exemple :
def bonjour
puts "Bonjour monde!"
end
bonjour
bonjour
Qui produira:
Bonjour monde!
Bonjour monde!
Comme vous pouvez dès à présent le constater, les fonctions peuvent servir à réutiliser du code facilement.
Paramètres de fonction
Vous savez déjà qu’il est possible de passer des paramètres aux méthodes et fonctions. Mais vous ne savez pas encore comment faire!
Voici la fonction bonjour légèrement améliorée :
def bonjour(nom)
puts "Bonjour " + nom + ", comment vas-tu"
end
bonjour("Laurent")
bonjour "Stéfanie"
Ce qui produira:
Bonjour Laurent, comment vas-tu?
Bonjour Stéfanie, comment vas-tu?
Afficher une adresse
Écrivons maintenant une fonction un peu plus utile. Souvenez-vous des structures d’adresses du chapitre précédent :
# Adresse de Nicolas
adresse_de_nicolas = {
"rue" => "Rue du port, 32",
"code postal" => "56000",
"ville" => "Vannes",
"pays" => "France"
}
# Adresse de François
adresse_de_francois = {
"rue" => "Avenue de la tranchée, 14",
"code postal" => "1000",
"ville" => "Bruxelles",
"pays" => "Belgique"
}
Voici le code d’une fonction qui permet de les afficher à l’écran :
def affiche_adresse(adresse)
code_postal = adresse["code postal"]
ville = adresse["ville"]
puts " " + adresse["rue"]
puts " " + code_postal + ", " + ville
puts " " + adresse["pays"]
end
Maintenant, nous pouvons facilement afficher des adresses:
puts "Nicolas:"
affiche_adresse(adresse_de_nicolas)
puts "François:"
affiche_adresse(adresse_de_nicolas)
Ce qui produira à l’écran:
Nicolas:
Rue du port, 32
56000, Vannes
France
François:
Rue du port, 32
56000, Vannes
France
Classes et methodes << | Apprenez Ruby | >> Classes et methodes 2

