LoginSignup
0
0

More than 1 year has passed since last update.

privateメソッドとは何か、どういう時に使うのか

Last updated at Posted at 2023-01-14

Privateメソッドとは何か

クラス外からは呼び出せず、クラス内でのみ使えるメソッドのこと。
(インスタンスを作ってprivateメソッドを直接呼び出すということができない)

HogeHoge.rb
# encoding: UTF-8

class HogeHoge
  def hoge_method
    p("ほげほげ")
  end

  def call_private_hoge_method
    p("プライベートな情報を取得する前の事前作業")
    p(".........")    
    private_hoge_method
  end


  private
  def private_hoge_method
    p("プライベートな情報を取得!")
  end
end


hogehoge = HogeHoge.new
hogehoge.hoge_method
hogehoge.call_private_hoge_method
hogehoge.private_hoge_method  # 直接呼び出すとエラーになる

ruby hogehoge.rb

"ほげほげ"
"プライベートな情報を取得する前の事前作業"
"........."
"プライベートな情報を取得!"
Traceback (most recent call last):
hoge.rb:25:in `<main>': private method `private_hoge_method' called for #<HogeHoge:0x00007fadd6900688> (NoMethodError)

privateメソッドはどういう時に使うのか?

適切な順番で呼び出す必要があるメソッドだったり、
外から呼び出されると内部状態に問題が生じる場合に設定する時にprivateメソッドを使う。
下記の記事がとても参考になった。

余談

Railsでprivateメソッドを定義する時は、
モデルではvalidateとかコールバック関数、
コントローラーではストロングパラメータを使う時
定義している印象がある。

参考文献:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0