Dans cet exemple, les noyaux sont lancés car les modifications que vous apportez à buggy_logger sont appliquées à la chaîne 'status' - tout comme si vous utilisiez une copie d'une référence à un objet -> lorsque vous modifiez la copie de la référence, la modification est appliquée à l'objet sous-jacent -> cette modification est, à son tour, reflétée dans toutes les autres références à l'objet. Donc, en d'autres termes, buggy_logger est un alias à l'objet 'status' sans utiliser spécifiquement le mot-clé alias? Est-ce exact? Ainsi, en rubis, vous venez de dire'buggy_logger' est-il une référence à la chaîne 'status' dans cet exemple Ruby?
b = a
puis toutes les modifications apportées à la suite b sont également reflétés dans un. Ou est-ce seulement vrai parce que nous parlons de chaînes, qui sont mutables dans Ruby?
# example-4.rb
status = "peace"
buggy_logger = status
print "Status: "
print buggy_logger << "\n" # <- This insertion is the bug.
def launch_nukes?(status)
unless status == 'peace'
return true
else
return false
end
end
print "Nukes Launched: #{launch_nukes?(status)}\n"
# => Status: peace
# => Nukes Launched: true
Oh, c'est trop cool - je ne savais pas qu'il y avait une méthode dup. Merci. –
Ah, d'accord. Donc ce n'est pas seulement des ficelles. Merci encore. –