讃岐小僧のEngineering×Techメモ

未経験から挑戦中のプログラミングや、趣味の野球や狩猟について、その他、ビジネスやテクノロジーをテーマに様々なことをつぶやく場所です。

【Ruby】メソッドについて詳しく~part2~

はじめに

今回は前回の続きで引き続きメソッドについてまとめていきたいと思います。

前回の記事を下記に貼っておきますので興味がある方はみて下さい。

www.sanuki-kozo.com

それではまとめていきます。

で終わるメソッド

?で終わるメソッドは真偽値を返すメソッドとなる。

?で終わるメソッドの例

nil.nil?
=> true

'清原'.nil?
=> false

!で終わるメソッド

!で終わるメソッドは「使用する際には気をつけよう!」という意味を持ちます。 なぜ注意かというのは実際に使いながら説明してみます。

!で終わるメソッドの例

今回はupcaseメソッドというものを使って説明します。

まずは!なしでupcaseメソッドを利用する場合

irb(main):001:0> a = 'kiyohara'
=> "kiyohara"

irb(main):002:0> a.upcase
=> "KIYOHARA"

irb(main):003:0> puts a
kiyohara

今回はaという変数に対してupcaseメソッドを利用しただけなのでaの値はkiyoharaのままで書き換えられていません。

では次は!ありでupcase!メソッドを利用する場合をみてみます。

irb(main):004:0> a.upcase!
=> "KIYOHARA"

irb(main):005:0> puts a
KIYOHARA

今回は!付きで利用しましたが、aの値がKIYOHARAに書き換えられてしまいました。 このように元の変数を書き換えてしまうようなメソッドを「破壊的メソッド」と呼びます。

※破壊的メソッドが全て!で終わるということではありません。

破壊的メソッドは自ら定義できる

破壊的メソッドは自ら定義することもできます。

def string_upcase!(string)
  string.upcase!
end

string = 'kiyohara'
puts string_upcase!(string)
=> KIYOHARA

上記の例ではstiring_upcase!のように!をメソッド名に利用しましたが、こちらはなくても大丈夫です。
ただ、読み手が分かり易いように!をつけてあげた方が丁寧で良いかもしれませんね。

今回はここまで。

最後に

この記事はプロを目指す人のためのRuby入門から学んだことを参考にして内容が作られています。

Rubyを本格的に勉強したいと考えられている方は是非、下記リンクに書籍のリンクを貼っているので確認してみてください。