49 votes

Définir la variable Ruby si elle n'est pas déjà définie

En Ruby, comment définir une variable sur une certaine valeur si elle n'est pas déjà définie et laisser la valeur actuelle si elle est déjà définie ?

31voto

Dark Passenger Points 18408
@variable ||= "set value if not set"

Ainsi, les false seront remplacées

 > @test = true 
 => true 
> @test ||= "test"
 => true 
> @test 
 => nil 
> @test ||= "test"
 => "test" 
> @test = false 
 => false 
> @test ||= "test"
 => "test" 

8voto

Victor Moroz Points 4689

Comme vous n'avez pas précisé quel type de variable :

 v = v
v ||= 1

Cependant, ne recommandez pas de le faire avec des variables locales.

Edit : en fait v=v n'est pas nécessaire

0voto

Dmitri Points 607

Si la variable n'est pas définie (déclarée ?), elle n'existe pas, et si elle est déclarée alors vous savez comment vous l'avez initialisée, non ?

Habituellement, si j'ai juste besoin d'une variable dont je ne connais pas encore l'utilisation --- que je sais ne jamais utiliser comme booléen --- je l'initialise en définissant sa valeur sur nil. Ensuite, vous pouvez tester s'il a été modifié plus tard assez facilement

 x = nil


some code


if x do 
[code that will only run if x has changed]
end

c'est tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X