En ruby, il existe 4 types de variables:
- variable local (var)
- variable global ($var)
- variable d'instance (@var)
- variable de classe (@@var)
Dans l'exemple au-dessus, j'utilise des variables d'instance qui sont rattachées à l'objet spécial "main" qui correspond au contexte d'exécution du programme. Ça revient au même que l'exemple de castorpilot mais dans son cas, le contexte est explicite (la classe Test).
J'avoue que ma méthode n'est pas très propre. ^^
Sinon, la différence entre variable d'instance et variable local, c'est leur portée.
Un exemple:
self #=> 'main'
@a = 'foo' # variable d'instance de l'objet spécial 'main'
a = 'bar' # variable local
def foo
puts @a
puts a rescue "variable non défini"
end
foo
#=> foo
#=> variable non défini
PS: Je ne suis pas programmeur, je fais du ruby par 'plaisir'. Donc il se peut que ces informations soit imprécises voir carrément fausses. Toutes mes excuses si c'est le cas et toutes corrections et/ou informations supplémentaires sont les bienvenus.
[^] # Re: Et pourquoi pas...
Posté par jiyuu . En réponse au message Accéder à une variable par son nom. Évalué à 1.
- variable local (var)
- variable global ($var)
- variable d'instance (@var)
- variable de classe (@@var)
Dans l'exemple au-dessus, j'utilise des variables d'instance qui sont rattachées à l'objet spécial "main" qui correspond au contexte d'exécution du programme. Ça revient au même que l'exemple de castorpilot mais dans son cas, le contexte est explicite (la classe Test).
J'avoue que ma méthode n'est pas très propre. ^^
Sinon, la différence entre variable d'instance et variable local, c'est leur portée.
Un exemple:
self #=> 'main'
@a = 'foo' # variable d'instance de l'objet spécial 'main'
a = 'bar' # variable local
def foo
puts @a
puts a rescue "variable non défini"
end
foo
#=> foo
#=> variable non défini
PS: Je ne suis pas programmeur, je fais du ruby par 'plaisir'. Donc il se peut que ces informations soit imprécises voir carrément fausses. Toutes mes excuses si c'est le cas et toutes corrections et/ou informations supplémentaires sont les bienvenus.