Das Ausrufezeichen bedeutet viele Dinge, und manchmal kann man nicht viel anderes als "das ist gefährlich, sei vorsichtig" sagen.
Wie andere gesagt haben, wird es in Standardmethoden oft verwendet, um eine Methode anzugeben, die bewirkt, dass ein Objekt sich selbst mutiert, aber nicht immer. Beachten Sie, dass viele Standardmethoden ihren Empfänger ändern und kein Ausrufezeichen haben (pop
, shift
, clear
), und einige Methoden mit Ausrufezeichen ändern ihren Empfänger nicht (exit!
). Siehe zum Beispiel this article.
Andere Bibliotheken können es anders verwenden. In Rails bedeutet ein Ausrufezeichen oft, dass die Methode bei einem Fehler eine Ausnahmebedingung auslöst, anstatt stillschweigend zu reagieren.
Es ist eine Namenskonvention, aber viele Leute verwenden es auf subtil verschiedene Arten. In Ihrem eigenen Code ist es eine gute Daumenregel, sie immer dann zu verwenden, wenn eine Methode etwas "Gefährliches" tut, besonders wenn zwei Methoden mit demselben Namen existieren und eine davon "gefährlicher" ist als die andere. "Gefährlich" kann jedoch fast alles bedeuten.
Synonym: Knall, Ausrufezeichen – prusswan
Die akzeptierte Antwort sollte http://stackoverflow.com/a/612653/109618 geändert werden. Siehe http://www.wobblini.net/bang.txt und http://www.ruby-forum.com/topic/176830#773946 - "Das Knallzeichen bedeutet" die Knallversion ist mehr gefährlich als sein nicht Knallgegenstück; vorsichtig handhaben "" -Matz –
Die Bang-Methode wäre eine großartige Design-Wahl, wenn ** nur ** und ** alle ** Bang-Methoden gefährlich wären. Leider sind sie es nicht, und so wird es zu einer frustrierenden Übung, sich zu merken, was veränderbar ist und was nicht. –