大佬教程收集整理的这篇文章主要介绍了有没有办法从Ruby中的一个实例调用一个私有的Class方法?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
更新:
@Jonathan Branam:这是我的假设,但我想确保没有人找到办法. Ruby中的可见性与Java非常不同.你也很正确,私有对类方法不起作用,尽管这将声明一个私有类方法:
class Foo class <<self private def bar puts 'bar' end end end Foo.bar # => NoMethodError: private method 'bar' called for Foo:Class
class Foo def self.private_bar # Complex logic goes here puts "hi" end private_class_method :private_bar class <<self private def another_private_bar puts "bar" end end public def instance_bar self.class.private_bar end def instance_bar2 self.class.another_private_bar end end f=Foo.new f=instance_bar # NoMethodError: private method `private_bar' called for Foo:Class f=instance_bar2 # NoMethodError: private method `another_private_bar' called for Foo:Class
我没有办法解决这个问题.该文档说您不能指定一个私有方法的接收.此外,您只能从同一实例访问私有方法. Foo类是与Foo的给定实例不同的对象.
不要以我的答案为最终.我当然不是专家,但我想提供一个代码片段,以便其他尝试回答的人将具有适当的私有类方法.
以上是大佬教程为你收集整理的有没有办法从Ruby中的一个实例调用一个私有的Class方法?全部内容,希望文章能够帮你解决有没有办法从Ruby中的一个实例调用一个私有的Class方法?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。