Pourquoi la méthode power!
dans la classe Fixnum
de Ruby est-elle nommée avec un point d'exclamation? Par convention, les méthodes qui ont un nom se terminant par un! sont potentiellement dangereux (par exemple, ils peuvent modifier l'instance d'une manière ou d'une autre).La puissance de Fixnum! méthode potentiellement dangereuse?
Je peux apprécier la différence entre gsub
et gsub!
dans String
, mais quoi de neuf power!
? Il ne semble pas modifier l'instance Fixnum
ou effectuer d'autres actions "dangereuses"; ça renvoie juste le résultat.
Les méthodes Bang signifient danger, pas nécessairement modification. Voir http://stackoverflow.com/questions/709229/difference-between-downcase-and-downcase-in-ruby (Je vais supprimer le downvote une fois que c'est corrigé) –
Le site web de Ruby (ruby-lang.org) liens vers un tutoriel qui précise que les méthodes bang modifient le récepteur: http://rubylearning.com/satishtalim/writing_own_ruby_methods.html. "Les méthodes ruby qui modifient un objet sur place et se terminent par un point d'exclamation sont connues sous le nom de méthodes bang." Alors ... qui a raison? – Jeff
Ouch. Cependant, il dit plus tard "Normalement pour les classes intégrées, dangereux habituellement (mais pas toujours) signifie que cette méthode, à la différence de son équivalent non-bang, modifie en permanence son récepteur.". Je vais inverser mon downvote si vous fournissez un edit vierge à la question (je ne peux pas annuler mon downvote autrement) –