Ruby の private メソッドとは
Ruby の private メソッドとは『レシーバをつけて呼び出すことができない』メソッドのことである。
Ruby の private メソッドは Module
の #private
を使用することで以降に定義したメソッドを private メソッドとして定義する事ができる。
class X def test # private メソッドはレシーバをつけないで # 呼び出すことができる private_method + private_method2 # レシーバをつけて private メソッドを呼び出すことはできない self.private_method # Error: private method `private_method' called for #<X:0x00000001ea29e0> (NoMethodError) end # private メソッドにしたいメソッドの前に private を置く # 以降、メソッドを定義した場合はすべて private メソッドとなる private def private_method "private_method" end def private_method2 "private_method2" end end x = X.new x.test # => "private_methodprivate_method2" # レシーバをつけて private メソッドを呼び出すことはできない x.private_method # Error: private method `private_method' called for #<X:0x000000020de8f8> (NoMethodError)
基本的には Ruby では自分以外からメソッドを呼び出す場合にレシーバが必要になる。
そのため、private メソッドにすることで『自分以外からメソッドを呼び出すことを制限する』事ができる。