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

ruby – 为什么`BasicObject`回答方法`superclass`和`class`?

发布时间:2020-12-17 02:55:38 所属栏目:百科 来源:网络整理
导读:如果对象在Object中定义了BasicObject和#superclass和#class,如何可能A类 BasicObject是A.superclass和A.class的答案吗? A.ancestors:[A,BasicObject] 更进一步(根据新的答案): 如果A是Object的一个实例,为什么它的祖先没有呢? Class B;endB.ancestors #
如果对象<在Object中定义了BasicObject和#superclass和#class,如何可能A类< BasicObject是A.superclass和A.class的答案吗? A.ancestors:[A,BasicObject] 更进一步(根据新的答案): 如果A是Object的一个实例,为什么它的祖先没有呢?

Class B;end
B.ancestors # => [B,Object,Kernel,BasicObject]

SuperClass可能在内核中定义,但A在其祖先中没有内核.

内核包含在Object中(从object.rb开始):

class Object < BasicObject
  include Kernel
end

P.S这git issue让我很困惑,可以问一下

解决方法

class A < BasicObject
end

这里,A类本身就是Class类的一个实例.

A.class
#=> Class

答案.class和.superclass因为Class支持它们.

在这种情况下,您所考虑的是A的一个实例:

A.new
(Object doesn't support #inspect)
=>

(编辑:李大同)

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

    推荐文章
      热点阅读