ruby – “公共”和“私人”是课程,而“受保护”不是?
发布时间:2020-12-17 02:23:10 所属栏目:百科 来源:网络整理
导读:irb(main):001:0 public.class= Classirb(main):002:0 private.class= Class 我很惊讶公共课是班级,私人也一样,让我继续考试: irb(main):003:0 protected.classNameError: undefined local variable or method `protected' for main:Object from (irb):3 fr
irb(main):001:0> public.class => Class irb(main):002:0> private.class => Class 我很惊讶公共课是班级,私人也一样,让我继续考试: irb(main):003:0> protected.class NameError: undefined local variable or method `protected' for main:Object from (irb):3 from D:/Ruby2.0.0/bin/irb:12:in `<main>' 呃,现在我更困惑了.所以我的问题是: >公共和私人真的是课吗? 解决方法
问题1的答案是否定的,
public 和
private 不是类,它们是Module上的方法,protected 也是如此.它们都返回self,在您的示例中是Class的实例.
2.1.2 :006 > defined? public => "method" 至于为什么受保护的行为不同,我不知道.我怀疑它与顶级对象(主要)以及它的行为方式有关. 例如,这段代码: class Foo puts public puts private puts protected end 产生这个outut,没有受保护的错误: Foo Foo Foo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |