2013年2月3日日曜日

rubyの破壊的メソッド

【破壊的メソッドとは】

 『オブジェクトの内容を変更してしまうメソッドで、文字列や配列、ハッシュ などにあります。同名のメソッドがあって、一方はオブジェクトのコピーを 作って返し、もう一方は変更されたオブジェクトを返すようになっている場合、 !のついた方が破壊的メソッドです。ただし、!がつかないメソッドの中にも String#concatのように破壊的なものはあります。』

【破壊的・非破壊的の両方が存在するメソッド】
String#chop、chop!
String#chomp、chomp!
(あとで追記)

【破壊的しかないメソッド】
 String#concat
 String#shift
 String#unshift
 String#pop
 String#push
(あとで追記)

【私見・疑問】
 ・破壊かどうかは覚えないとだめなのか?
  → 覚えるしかない。
    自分で定義する場合はどちらか分からなくならないように、
    両方定義したほうがいいのかも