« Programmation Ruby/Premiers essais » : différence entre les versions

Contenu supprimé Contenu ajouté
orthographe + typographie
Gromitt (discussion | contributions)
Correction ortho, style.
Ligne 1 :
[[Programmation Ruby|<< Retour au sommaire]]
 
Pour faire les premiers essais avec ruby'''Ruby''', nous allons utiliser l'outil ''irb'', un interpréteur ruby'''Ruby''' très pratique pour tester et déboguer. Celui-ci se lance simplement à partir d'un terminal avec la commande ''irb'' :
# irb
Ligne 7 :
Sous windows, un raccourci a dû être rajouté au menu démarrer.
Pour mene pas déroger à la règle, nous allons pour premier exemple dire bonjour :
irb(main):001:0> puts "Hello worldWorld"
 
Ceci renverra
Ligne 16 :
=> nil
 
soit l'effet produit par notre fonction (l'affichage de la chainechaîne "''Hello worldWorld''"), et la valeur de retour de celle-ci, dans notre cas ''nil''.
Bon, pourPour un langage objet, cet exemple n'est pas très adapté. Il faut néanmoins savoir que tout code écrit en dehors d'une classe ou d'un module fait partie de la classe ''Object''.
 
On aurait également putpu écrire cet exemple de cette manière :
irb(main):013:0> STDOUT << "Hello" << " " + "World"
Ligne 26 :
L'approche objet est ici plus évidente : la méthode "''<<''" de l'objet ''STDOUT'' est appelée avec " ''"Hello" << " " + "World"''" comme paramètre. De même on appelle la méthode ''<<'' de l'objet ''"Hello"'' (qui est une instance de l'objet String).
On découvre ici le modèle tout objet de ruby,Ruby. ruby enEn effet, celui-ci ne comporte pas de type primaire, ainsi, une chaîne de caractères ou un nombre sont des objets, comme on peut le voir avec la méthode Object.class :
irb(main):016:0> 3.class
Ligne 32 :
irb(main):017:0> "Hello".class
=> String
irb(main):018:0> /^Hello\sworldsWorld$/.class
=> Regexp
 
Bien sûr, chacun de ces objets possède ses propres méthodes, quque l'on peut lister ainsi :
irb(main):019:0> Fixnum.methods
Ligne 64 :
"instance_of?", "truncate"]
 
On constate certaines particularités syntaxiques, nous les détaillerons plus tard même si elles sont assez claires, par exemple une méthode dont le nom se termine par ''?'' indique que celle-ci renvoirenvoie un booléen.
 
Pour plus d'informations sur un objet ou une méthode, vous pouvez, à partir d'un terminal, exécuter la commande ''ri'' :
# ri times
Si une méthode est incluse dans plusieurs objets, ''ri'' vous proposera un liste de choix possible.
 
Toute méthode peut être redéfinie :
Ligne 86 :
=> -1
 
Toutes les méthodes peuvent ainsi être redéfinies, bien surcependant, cette fonctionnalitéefonctionnalité est à userutiliser avec précaution.
 
Pour finir cette présentation nous allons voir la notion de bloc en ruby'''Ruby''', et voir comment ceux-ci peuvent être utilisé : utilisés.
Par exemple :
Ligne 100 :
4
 
Ici nous voyons que le bloc délimité par ''do'' et ''end'' (il est à noter que l'on peut également délimiter les blocs par des accolade s ouvrante/fermante (''{}'')) est envoyé en paramètre à la méthode ''times'' de l'objet ''Fixnum''. La ou les valeurs entre pipepipes (ici la variable ''i'') indiquent le ou les paramètres que la méthode passe en paramètre au bloc. Donc iciIci, la méthode times va donc appeler 5 fois le bloc en y passant en paramètre un entier valant au départ 0 et qui sera incrémenté de 1 à chaque appel du bloc.
NousTous verronsces dansconcepts lesseront chapitres suivant plusvus en détail tousdans cesles conceptschapitres suivants.