Comment vous définissez une valeur de type boolean valeur par défaut en Ruby?

Pour d'autres types de variables, j'utilise ||=, mais cela ne fonctionne pas pour les booléens (x ||= true attribue x à vrai même si x a été précédemment attribué à false).

J'avais pensé que ce serait le travail:

x = true unless defined?(x)

Mais il n'a pas: il affecte à x à zéro pour une raison quelconque. (Une explication ici serait appréciée.)

Je connais une méthode qui fonctionne:

unless defined?(x)
  x = true
end

Mais il est assez bavard. Est-il une manière plus concise pour attribuer des valeurs par défaut pour les variables booléennes en Ruby?

est-il une raison pourquoi vous ne voulez pas que x soit attribué à zéro (ce qui est équivalent à false pour toutes les intentions et buts) ?
Parce qu'il veut qu'il soit true, pas falsey.
À l'aide de néant au lieu de false est bien, mais il ne traite pas le problème avec ||=. Si vous essayez d'attribuer une valeur par défaut de x à l'aide de ||=, et x a été précédemment attribué à néant, elle sera remplacée plutôt que la conservation de la valeur de néant (depuis le néant est falsey).

OriginalL'auteur evanrmurphy | 2012-11-09