破壊的なメソッド! 真偽値なメソッド?

 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

 このように空かどうかとか、条件を含むかどうかを判別してくれる疑い深いメソッドである?

 

 

<参考サイト>  ありがとうございました

https://dai-kondo.hatenablog.com/entry/2018/11/05/%E3%80%90Ruby%E5%85%A5%E9%96%80%E3%80%91%E3%80%8C%EF%BC%81%E3%80%8D%E3%81%A8%E3%80%8C%EF%BC%9F%E3%80%8D%E3%81%8C%E3%81%A4%E3%81%8F%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%AB%E3%81%A4%E3%81%84