Ruby on Railsをお勉強中なのです。 ところどころ出てくるメソッドの!と?について、すこし整理してみます。 感嘆符「!」 これは破壊的メソッドを表します。 Rubyのリファレンスには、以下のようにあります。 「!」はメソッド名の一部です。慣用的に、 同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。 例えば、sort関数の場合、以下のようになります。 array = [3, 1, 5, 2, 4] a = array.sort p a # => [1, 2, 3, 4, 5] p array # => [3, 1, 5, 2, 4] b = array.sort! p b # => [1, 2, 3, 4, 5] p array # => [1, 2, 3, 4, 5] 一言で言うと「メソッドを呼びだしたオブジェクト自身が影