MENU

【Ruby】privateメソッドの意味を超簡単にわかりやすくまとまておく

  • URLをコピーしました!
目次

Rubyで使用されるprivateメソッド

RubyやRuby on Railsで開発をしていると、privateメソッドが使用されていることが多くあります。
このprivateメソッドにはどのような役割があるのでしょうか。

たけし

privateってプライベートだから、誰かに見られたくないとか使って欲しくないってときに使うメソッドなんじゃないかな。

privateメソッドの役割

まずどのようにこのprivateメソッドを使用するのか例を見てみましょう。

privateメソッドの使用例

エラーになるパターン

class User
  private

  def gorira
    p "あなたは今日からゴリラです"
  end
end

user = User.new
user.gorira

privateと記述しているところから下で定義しているgoriraメソッドをuser.goriraという形で呼び出していますが、このコードではエラーとなります。

エラーにならないパターン

class User
  def takeshi
    gorira
  end

  private

  def gorira
    p "あなたは今日からゴリラです"
  end
end

user = User.new
user.takeshi

user.takeshi でtakeshiメソッドを呼び出しています。その中でprivateより下で定義されているgoriraメソッドを呼び出しています。この場合だと、user = User.newでUserインスタンスが生成されて、その中にあるtakeshiメソッドの中でgoriraメソッドが使用されているので、エラーとなることなく実行されます。

実行結果

"あなたは今日からゴリラです"

まとめ

言語化するのが少し難しいかもしれませんが、RubyやRailsの開発をしているとよく登場するので覚えておきましょう。

参考

あわせて読みたい
Module#private (Ruby 3.2 リファレンスマニュアル) メソッドを private に設定します。
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

東京のIT企業に所属しながらフルリモートで働く現役Webエンジニア。体育会出身で営業職からプログラミングを学び始め、2020年秋に未経験ながらエンジニアとして転職。Jリーグ下部組織出身/水戸商業サッカー部OB/欧州でのトライアウト経験あり

目次