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