目次
Rubyで使用されるprivateメソッド
RubyやRuby on Railsで開発をしていると、privateメソッドが使用されていることが多くあります。
このprivateメソッドにはどのような役割があるのでしょうか。
![](https://tech-masao.com/wp-content/uploads/2022/05/5e535741f5fa1a13a1f8f233_peep-48.png)
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.4 リファレンスマニュアル)
メソッドを private に設定します。