在Ruby中声明“私有”/“受保护”时实际发生了什么?
发布时间:2020-12-16 23:17:29 所属栏目:百科 来源:网络整理
导读:在 Ruby类定义中声明private / protected时实际发生了什么?它们不是 keywords,所以这意味着它们必须是方法调用,但我无法找到它们的定义位置.它们似乎没有记录.声明私有/受保护方法(如下所示)的两种不同方式是否以不同方式实现? (第二种方式显然是方法调用,
在
Ruby类定义中声明private / protected时实际发生了什么?它们不是
keywords,所以这意味着它们必须是方法调用,但我无法找到它们的定义位置.它们似乎没有记录.声明私有/受保护方法(如下所示)的两种不同方式是否以不同方式实现? (第二种方式显然是方法调用,但这在第一种方式中并不那么明显.)
class Foo private def i_am_private; end def so_am_i; end end class Foo def i_am_private; end def so_am_i; end private :i_am_private,:so_am_i end 解决方法
两者都是方法调用.引自
docs:
请参阅此处的文档 > Module.private 您正在寻找Module.private方法如何存在.关于它,Here is where that happens和here is some more information.从class.c中定义的rb_define_private_method开始,您必须阅读更多内容. 希望有所帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |