Les symboles

1. Principe

Un symbole est une référence de syntaxe :nom sur un nom utilisé pour une classe, variable, méthode ou chaîne. Ce symbole est défini par la classe Symbol. Il est indépendant du contexte, c’est-à-dire que si vous avez une classe C et une méthode C, le symbole vers C sera identique. Nous pouvons l’observer dans l’exemple ci-dessous avec l’usage de object_id pour connaître l’identifiant de notre symbole.

Exemple :

hello="ok"
ref = :hello

def hello()  
  puts :hello.object_id
end

hello()
# Résultat : 99298
puts ref.object_id
# Résultat : 99298 

2. Avantage

Les symboles peuvent être utiles pour économiser la mémoire, par exemple dans les tableaux, les tables de hachage. À chaque fois que l’on crée une chaîne en Ruby, c’est un nouvel objet, en passant par les symboles on économise cette multiplication des objets. Les symboles sont pour cette raison massivement employés dans le framework Ruby on Rails.

Exemple :

hello="ok"
puts hello.object_id
# Résultat : 20808220
world="ok"
puts world.object_id
# Résultat : 20808200
# On a deux objets en mémoire

hello=:ok
puts hello.object_id
# Résultat : 99458
world=:ok
puts world.object_id
# Résultat : 99458
# On a bien qu'un seul objet en mémoire

# Exemple avec une table de hachage
table = {}
table[ :nom ] = "fogg"
table[ :prenom ] = "phileas"
puts...
Pour consulter la suite, découvrez le livre suivant :
couv_Ruby.PNG
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
La table de hachage
Suivant
Exercices