Dans le code ci-dessous, j'essaie d'ajouter du texte à une valeur de chaîne si une clé est définie. Si la clé n'est pas définie, elle définit simplement la paire clé/valeur avec le texte.Ajouter à la valeur si la clé est définie, déclarer si elle n'est pas définie
if my_hash.key?(:my_key)
my_hash[:my_key] << 'My text'
else
my_hash[:my_key] = 'My text'
end
Y a-t-il une meilleure façon de procéder?
Essayez ceci: 'my_hash [: my_key] = my_hash [:] my_key .presence.to_s + « Mon text'': si 'my_hash [: my_key] 'est' nil', il appellera 'nil.to_s', ce qui retourne une chaîne vide – MrYoshiji
Pas besoin de' présence', vous pouvez utiliser 'my_hash [: my_key] = mon_hash [: ma_key] .to_s + 'Mon text''. Voir [ici] (http://stackoverflow.com/questions/6196484/how-to-append-a-string-to-a-variable-that-either-exists-or-not) –
Parfait! Les deux solutions fonctionnent donc je suppose que le moins verbeux est le meilleur. Pourquoi cela fonctionne-t-il? would_s donner une erreur si la clé n'est pas définie? – Elmer