加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 班级<<自我意味着什么?

发布时间:2020-12-17 04:15:17 所属栏目:百科 来源:网络整理
导读:关于: class Test class self def hi puts "Hi there" endend 我在脑海中想出了以下图片: 由于一切都是Ruby中的对象,因此类本身就是类Class的对象.通过调用类自我从Test内部打开类定义并注入几个实例方法.由于Test是Class的一个实例,因此可以调用这些方法,
关于:
class Test
  class << self
    def hi
      puts "Hi there"
    end
end

我在脑海中想出了以下图片:

由于一切都是Ruby中的对象,因此类本身就是类Class的对象.通过调用类<<自我从Test内部打开类定义并注入几个实例方法.由于Test是Class的一个实例,因此可以调用这些方法,就像在对象上调用实例方法一样:Test.hi. 以下是伪代码,它有助于可视化我之前的句子:

class Class
    def hi
        puts “Hi there”
    end
end

Test = Class.new(class Test
end)
Test.hi

我做对了吗?

解决方法

假设我们有一个类A的对象obj.此时,obj类的祖先层次结构是:
[A,...]

什么类<< OBJ; ... end确实是它创建了一个B类,它的唯一实例是obj,并将它放在obj的祖先层次结构中,以便obj类的祖先层次结构变为:

[B,A,...]

如果你写类<<自; ...在Test的上下文中结束,然后它的主体将是一个其唯一实例为Test的类.如果在该主体中定义实例方法hi,则该类将应用于该类的实例,即Test.因此,你将能够做Test.hi.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读