Je suis venu récemment à travers le code Ruby suivant, qui me confond:En utilisant les mots-clés de `or` de Ruby lors de la création d'une variable
def initialize(kind, street_1, street_2, city, state, postal_code)
@kind = kind or ''
@street_1 = street_1 or ''
@street_2 = street_2 or ''
@city = city or ''
@state = state or ''
@postal_code = postal_code or ''
end
Je ne comprends pas quel rôle or
joue dans ce code. Quelqu'un peut-il expliquer s'il vous plaît?
Non seulement 'nil', mais' false' aussi (les deux valeurs qui évaluent 'false' dans Ruby) – jayelm
Point merveilleux, merci! – CalmBit
Hrm. C'est parfaitement logique, mais cela ne semble pas correspondre à ce que je vois quand je le mets à l'épreuve. C'est-à-dire que je change une ligne de la méthode 'initialize' à la place:' @state = state ou "TX" '. Maintenant, disons que j'appelle 'Class.new (" quelque chose "," 1800 Wallaby Way ", néant, néant, néant, néant)'. Après avoir fait tout cela, si j'appelle alors 'puts' sur' @ state', ne vous attendez pas à ce que la sortie soit 'TX'. Je le ferais, mais cela ne semble pas être le cas. Au lieu de cela, la sortie est vide, ce qui indique que le mot clé 'or' n'est * pas * pris en compte. Mon code: https://repl.it/EGO0/0 – filmnut