クラス
class A
private
def foo
puts :foo
end
public
def bar
puts :bar
end
private
def zim
puts :zim
end
protected
def dib
puts :dib
end
end
Aのインスタンス
a = A.new
テスト
a.foo rescue puts :fail
a.bar rescue puts :fail
a.zim rescue puts :fail
a.dib rescue puts :fail
a.gaz rescue puts :fail
テスト出力
fail
bar
fail
fail
fail
。テストを送信
[:foo, :bar, :zim, :dib, :gaz].each { |m| a.send(m) rescue puts :fail }
。出力を送信
foo
bar
zim
dib
fail
質問
「テスト出力」というラベルの付いたセクションは、期待される結果です。では、なぜ私は単純にプライベート/保護されたメソッドにアクセスできるのObject#send
ですか?
おそらくもっと重要です:
Rubyのpublic
//の違いは何ですか?それぞれをいつ使用しますか?誰かが実際の例と使用法を提供できますか?private
protected
private
protected