破壊的なメソッド! 真偽値なメソッド?
Rubyのメソッドに「!」や「?」がつくメソッドがある。愉快だなって思っていたけれど、ちゃんときちんとしっかり意味があるので、まとめておく。
●破壊的メソッド(!)
大元のオブジェクトの値を変更してしまう。メソッドは変数とかに一時的に演算処理を施すものであるが、その一時的を無視して元の値にまで変更を加える。百聞は一見に如かず。
name = hoge
puts name.upcase => HOGE puts name => hoge
name = hoge
puts name.upcase! => HOGE puts name => HOGE
このように大元のローカル変数の値もいっぺんに 変更してしまう。前提クラッシャー。破壊的メソッドである!!
●真偽値メソッド(?)
メソッドの後に?が付いているメソッドがある。それは真偽値(true/false)を返してくれるメソッドである。
例えば、 .empty? .nil? .blank? .present? .include?
name = hoge
name.empty? => false name.present? => true
name.include?(g) => true
このように空かどうかとか、条件を含むかどうかを判別してくれる疑い深いメソッドである?
<参考サイト> ありがとうございました