Ruby Language Variables globales


Exemple

Les variables globales ont une portée mondiale et peuvent donc être utilisées partout. Leur portée ne dépend pas de l'endroit où ils sont définis. Une variable sera considérée comme globale lorsqu'elle est préfixée par un signe $ .

$i_am_global = "omg"

class Dinosaur
    def instance_method
       p "global vars can be used everywhere. See? #{$i_am_global}, #{$another_global_var}" 
    end

    def self.class_method
       $another_global_var = "srsly?"
       p "global vars can be used everywhere. See? #{$i_am_global}"
    end
end

Dinosaur.class_method
# "global vars can be used everywhere. See? omg"
# => "global vars can be used everywhere. See? omg"

dinosaur = Dinosaur.new
dinosaur.instance_method
# "global vars can be used everywhere. See? omg, srsly?"
# => "global vars can be used everywhere. See? omg, srsly?"

Comme une variable globale peut être définie partout et sera visible partout, l'appel d'une variable globale "non définie" renverra zéro au lieu de générer une erreur.

p $undefined_var
# nil
# => nil

Bien que les variables globales soient faciles à utiliser, leur utilisation est fortement déconseillée en faveur des constantes.