Ruby
Syntaxe
Variables
Ruby propose cinq catégories de variables :
variable_locale
$variable_globale
@variable_d_instance
@@variable_de_classe
Constante
Une variable locale débute obligatoirement par un caractère minuscule (a-z) ou un '_'. La portée de ce type de variable se limite à un bloc de code (qui peut éventuellement être une mé thode).
Le premier caractère d'une variable globale est un '$'. Ce type de variable est accessible de n'importe où au sein d'un même script.
Une variable d'instance débute par un arobase (@). Ces variables sont propres à un objet.
Les variables de classes sont préfixées par un double arobase (@@).
Le dernier type de variable est particulier puisqu'il s'agit des constantes. Celles-ci débutent nécessairement par une majuscule (A-Z). En Ruby, il est possible d'affecter une nouvelle valeur à une constante après son initialisation. Cependant, un message d'avertissement sera émis mais la constante sera tout de même modifiée.
De plus, Ruby ajoute à ces cinq types de variables trois "pseudo-variables" :
self
true / false
nil
self
représente l'objet courant. On peut donc le comparer au mot-clé this
que l'on retrouve dans les langages orientés traditionnels comme le C++ ou Java.
true
et false
sont utilisés pour représenter les deux valeurs booléennes possibles.
Enfin, nil
représente une valeur indéfinie. Dans de nombreux autres langages, cette valeur peut être comparée à null
.
Toutes les variables précédemment décrites (excepté les variables de classes) sont par défaut initialisées à nil
.
A noter que, dans une structure conditionnelle, nil
est évalué comme la valeur booléenne false
.
Tableaux
Pour mieux comprendre le fonctionnement des tableaux, voici quelques exemples regroupant les fonctions principales disponibles en Ruby :
# Affectation d'une liste de valeurs
tab = [1,2,"a","b"]
# Initialisation d'un tableau à partir de valeurs d'un autre tableau
tab2 = [0,tab] # => [0,1,2,"a","b"]
# Accès à l'antépénultième valeur d'un tableau
tab[-2] # => ["a"]
# Accès à une coupe d'un tableau
tab[-3..-1] # => [2,"a","b"]
# Extraction de la dernière valeur
tab.pop # => "b"
# Insertion d'un valeur en fin de tableau
tab.push("c") # tab = [1,2,"a","c"]
# Extraction de la première valeur
tab.shift # => 1
# Insertion de valeurs en début de tableau
tab.unshift(-1,0) # tab = [-1,0,2,"a","c"]
# Regroupe toutes les valeurs d'un tableau dans une chaîne de caractères avec le sépérateur spécifié
print tab.join(" ") # Affiche : "-1 0 2 a c"
# Suppression des doublons
tab = tab.uniq
# Retourne le nombre d'élé contenus dans un tableau
print tab.length # Affiche : 5
# Suppresion d'un élément en fonction d'une condition
tab.delete_if { |e| e%2 == 0 } # Supprime les nombres pairs
# Suppression de toutes les valeurs d'un tableau
tab.clear # Vide le tableau
Tables de hachage
De même que pour les tableaux, voici les fonctions principales disponibles pour les tables de hachage en Ruby :
# Affectation
h = { "a" => 100, "b" => 200 }
# Vérification de la présence d'une clé
h.has_key?("a") # => true
# Vérification de la présence d'une valeur
h.has_value?(100) # => true
# Parcours de chaque couple clé-valeur
h.each {|key, value| puts "#{key} : #{value}" } # => a : 100
# => b : 200
# Retourne l'ensemble des clés sous forme de tableau
h.keys # => ["a","b"]
# Retourne l'ensemble des valeurs sous forme de tableau
h.values # => [100,200]
# Retourne une table de hachage sous forme d'une liste de tableaux contenant chacun un couple clé-valeur
h.to_a # => [["a", 100], ["b", 200]]
# Supprime l'ensemble des couples clés-valeurs d'une table de hachage
h.clear # Vide la table