Ruby Language Opérateur d'attribution Or-Equals / Conditional (|| =)


Exemple

Ruby possède un opérateur or-equals qui permet d'attribuer une valeur à une variable si et seulement si cette variable est nil ou false .

 ||= # this is the operator that achieves this. 

cet opérateur avec les doubles tuyaux représentant ou et le signe égal représentant l'attribution d'une valeur. Vous pensez peut-être que cela représente quelque chose comme ceci:

 x = x || y

Cet exemple ci-dessus n'est pas correct. L'opérateur or-equals représente en fait ceci:

 x || x = y

Si x évalué à nil ou à false x se voit attribuer la valeur de y et reste inchangé dans le cas contraire.

Voici un cas d'utilisation pratique de l'opérateur ou-equals. Imaginez que vous ayez une partie de votre code qui devrait envoyer un courrier électronique à un utilisateur. Que faites-vous si pour quelle raison il n'y a pas de courrier électronique pour cet utilisateur? Vous pourriez écrire quelque chose comme ceci:

 if user_email.nil?
    user_email = "error@yourapp.com"
 end

En utilisant l'opérateur ou-equals, nous pouvons couper tout ce morceau de code, fournissant un contrôle et des fonctionnalités propres et clairs.

 user_email ||= "error@yourapp.com"

Dans les cas où false est une valeur valide, il faut veiller à ne pas la remplacer accidentellement:

has_been_run = false
has_been_run ||= true
#=> true

has_been_run = false
has_been_run = true if has_been_run.nil?
#=> false