« Programmation Ruby/Types standards » : différence entre les versions

Contenu supprimé Contenu ajouté
Ganjo (discussion | contributions)
Ganjo (discussion | contributions)
Ligne 147 :
maChaine["Bonjour"] = "Hello"
puts maChaine => Hello le monde
 
 
==== Formatage de chaine ====
 
===== split =====
 
''split'' permet de séparer les différents éléments d'une chaine en fonction d'un ou plusieurs délimiteurs, par défaut ceux-ci sont les fins de ligne et les espaces (''\s'', ''\t'', ''\r'',''\n'' et ''\r\n''). La méthode renvoi un tableau contenant les différents éléments :
 
"Bonjour le monde".split => ["Bonjour", "le", "monde"]
"B.o.n.j.o.u.r".split('.') => ["B","o","n","j","o","u","r"]
 
Si un entier est donné en paramètre, le tableau résultant n'aura comme nombre d'élément la valeur de cet entier :
 
"B.o.n.j.o.u.r".split('.',3) => ["B","o","njour"]
 
Nous pouvons également utiliser une [[Programmation Ruby Types standards#Expression rationelle|expression rationelle]].
 
===== chomp, chomp!, chop et chop! =====
 
''chop'' et ''chop!'' permettent de supprimer le dernier caractère d'une chaine, néanmois si les deux dernier caractères sont "''\r\n''", les deux caractères sont supprimés :
 
"Bonjour\r\n".chop => "Bonjour"
"Bonjour\n\r".chop => "Bonjour\n"
"Bonjour\n".chop => "Bonjour"
"Bonjour".chop => "Bonjou"
 
''chomp'' et ''chomp!'' suppriment le dernier caractère seulement si celui-ci est un caractère de fin de ligne (soit "''\r''", "''\n''\" et "''\r\n''") :
 
"Bonjour".chomp => "Bonjour"
"Bonjour\n".chomp => "Bonjour"
"Bonjour le monde".chomp => "Bonjour \n le monde"
 
Si une chaine de caractères est donnée en paramètre, celle-ci est supprimé si elle est termine la chaine :
"Bonjour".chomp("jour") => "Bon"
"Bonjour\r\n".chomp("jour") => "Bonjour\r\n"
 
Pour rappel les méthode finissant par "''!''" sont des méthodes non pures : elles modifient l'objet appelant
 
===== downcase, downcase!, upcase, upcase!, swapcase, swapcase!, capitalize et capitalize! =====
 
''downcase'' et ''upcase'' permettent de passer respectivement tous les caractères en majuscules ou en minuscules.
 
"BonjOUr".downcase => "bonjour"
"BonjOUr".upcase => "BONJOUR"
 
''swapcase'' inverse la casse :
 
"BonjOUr".swapcase => "bONJouR"
 
''capitalize'' ne met que le premier caractère en majuscule :
 
"bonjOUr".capitalize => "BonjOUr"
 
===== % =====
 
L'opérateur ''%'' permet de formater la chaine de caractères. Le format utilisé est le même que celui de la fonction ''sprintf'' de ruby et de bien d'autres langages tel le ''C''. Le format est décrit par le caractère ''%'' suivit d'un indicateur optionnel, un indicateur de taille, de précision et de type.
 
Les infidcateurs de types :
 
{|border="1"
| Indicateur || Description
|-
| b || données binaire
|-
| c || caractère
|-
| d ou i || nombre entier
|-
| e || converti un nombre entier sous sa forme exponentielle avec un chiffre avant la virgulle, la précision indique le nombre de chiffre après la virgulle (par défaut 6)
|-
| E || comme ''e'' mais utilise le caractère majuscule ''E'' pour indiqué l'exponant
|-
| f || nombre flotant, la précision indique le nombre de chiffres après la virgule
|-
| g || comme ''e'' mais converti en nombre flotant
|-
| G || comme ''E'' mais converti en nombre flotant
|-
| o || nombre octal
|-
| p || symbole
|-
| s || chaine de caractères, si une précision est donné, alors elle indique le nombre de caractères
|-
| u || nombre entier non signé (par d'indicateur de signe)
|-
| x || hexadecimal en utilisant caractères minuscules (par exemple ''f'')
|-
| X || hexadecimal en utilisant caractères majuscules (par exemple ''F'')
|}
 
Format :
 
{|border="1"
| Indicateur || Types applicable || Description
|-
| ''espace'' || bdeEfgGioxXu || Laisse un espace au début des nombres positifs
|-
| # || bdeEfgGioxXu || Format alternatif, pour les types ''o'', ''x'', ''X'' et ''b'' préfixe respectivement le résultat par ''0'', ''0x'', ''0X'', et ''0b''
|-
| + || bdeEfgGioxXu || Ajoute un ''+'' au début des nombres positifs
|-
| - || bdeEfgGioxXu || Ajoute un ''-'' au début des nombres négatifs
|-
| 0 || ''tous'' || Rempli le format avec des ''0'' plutot que des espaces
|-
| . || ''tous'' || Prend l'argument suivant comme taille, si l'argument est négatif, alligne à gauche
|}
 
"%.3s" % 42424242 => "424"
 
Si plusieurs éléments doivent être formatés, il faut passer les paramètres dans un tableau :
 
"%d %04x" % [12.5, 42] => "12 002a"
 
=== Itérateurs ===