タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Rubyとprivateに関するtmsanrinshaのブックマーク (2)

  • Rubyのクラスメソッドをprivateにする方法

    次のソースコードでは、Foo#foo()はprivateなクラスメソッドにはなりません。 class Foo private def self.foo return 'foo' end end Foo.foo #=> 'foo' そこで、Rubyでクラスメソッドをprivateにする方法です。 1.private_class_methodを使う方法 private_class_methodはその名の通り、指定したメソッドをprivateなクラスメソッドにします。 class Foo def self.foo return 'foo' end def self.bar return 'bar' end private_class_method :foo end Foo.bar #=> 'bar' Foo.foo #=> エラー 2.特異クラスでprivateを使う方法 複数のクラスメソッドを

    Rubyのクラスメソッドをprivateにする方法
  • [Ruby] privateメソッドの本質とそれを理解するメリット - Qiita

    概要 Rubyのprivateメソッドを支える、2つのルール ルールを知る事によるメリット ※前者はメタプログラミングRubyより。 2つのルール privateメソッドを呼び出す時は、レシーバは指定できない 自分(self)以外のオブジェクトのメソッドを呼び出すには、レシーバを指定する必要がある ルール1 privateのついたメソッドを呼び出す時は、レシーバは指定できない 例として、レシーバ指定しないパターンと、 明示的にレシーバ指定してしまうパターンを試してみます。 class Sample1 def s1_call_private s1_private # 通常の呼び出し end def s1_call_private_with_receiver self.s1_private # あえてレシーバ(self)を明示して指定 end private def s1_private p

    [Ruby] privateメソッドの本質とそれを理解するメリット - Qiita
  • 1