gpt4 book ai didi

ruby - 为什么 Object 在 Ruby 中既包含内核又继承它?

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:43 25 4
gpt4 key购买 nike

在 Ruby (1.8.X) 中

为什么 Object 既继承了内核又包含了内核?仅仅继承还不够吗?

irb(main):006:0> Object.ancestors=> [Object, Kernel]irb(main):005:0> Object.included_modules=> [Kernel]irb(main):011:0> Object.superclass=> nil

请注意,在 Ruby 1.9 中情况类似(但更简洁):

irb(main):001:0> Object.ancestors=> [Object, Kernel, BasicObject]irb(main):002:0> Object.included_modules=> [Kernel]irb(main):011:0> Object.superclass=> BasicObjectirb(main):011:0> BasicObject.superclass=> nilirb(main):011:0> BasicObject.included_modules=> []

最佳答案

Object 不继承自 Kernel,它是最终的父类(super class)(在 Ruby 1.8 中)。 #ancestors 的结果方法由父类(super class) 包含的模块组成。具体来说,按照任何特定调用查找它们的顺序。

关于ruby - 为什么 Object 在 Ruby 中既包含内核又继承它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com