Possible en double:
What does ||= (or equals) mean in Ruby?Que signifie l'opérateur || = dans Ruby?
Il est difficile de rechercher cela dans Google, car il est un symbole, pas de texte.
Que signifie ||=
?
Et comment ça marche?
Possible en double:
What does ||= (or equals) mean in Ruby?Que signifie l'opérateur || = dans Ruby?
Il est difficile de rechercher cela dans Google, car il est un symbole, pas de texte.
Que signifie ||=
?
Et comment ça marche?
Affecte une valeur si elle n'est pas déjà affectée. Comme ceci:
a = nil
a ||= 1
a = 1
a ||= 2
Dans le premier exemple, un sera mis à 1. Dans le second, un sera toujours 1.
je ne peux que deviner, mais je suppose qu'il représente un opérateur logique combinée avec le réglage d'une variable (comme^=, + =, * = dans d'autres langues)
donc x ||= y
est le même que x = x || y
edit: je devinais à droite, voir http://phrogz.net/ProgrammingRuby/language.html#table_18.4
x = x || y
signifie: utiliser x si elle est définie, sinon y assigner. il peut être utilisé pour s'assurer que les variables sont au moins initialisées (à 0, à un tableau vide, etc.)
Si b est nul, attribuer un à lui.
a = :foo
b ||= a
# b == :foo
Si b n'est pas nul, ne le changez pas.
a = :foo
b = :bar
b ||= a
# b == :bar
Ceci est une 'cession abrégée' (voir Ruby Pocket Reference, page 10)
a = || b
(ce qui signifie une reçoit la valeur formée par logique ou de a, b
devient
a || b =
Presque tous les opérateurs ont une version abrégée (+ = * = & & = etc).
Attend un peu comme le SQL 'opérateur coalesce' –
Merci... Il est tout simplement en sorte que la valeur actuelle de la variable ne sera pas écrasé. –
Cette i s gentil. Quelque chose que C# peut inspirer. :-) –