内容
Rubyでは慣習として、レシーバーを変更するメソッド(破壊的メソッド)を
定義する際には感嘆符を末尾に付与します。
method_name!
下記は、Stringクラスの末尾の文字を削除するメソッドの不変版(immutable)と破壊版(bang)です。
サンプルコード
str = "hoge" puts str # => 変更前のhoge puts str.chop # => hogeの最後の一文字を除去。元の変数はそのまま puts str # => 変更前のhogeのままであることを確認 str = "hoge".chop! # => 元のhogeの最後の一文字を除去 puts str # => 元の変数ごと変更されたことを確認