`
不注册不行吗
  • 浏览: 5463 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

小试验,关于Ruby类的祖先链

阅读更多

对于理解Ruby的方法查找过程,祖先链概念非常重要,相同模块在原祖先链的类中多次混入时,新祖先链如何呢,做了一个小试验:

 

module M; end
module M1; end
module M2; end

class MyClass
  include M
  include M1
end

class MySubClass < MyClass
  include M
  include M2
end

obj = MySubClass.new
puts obj.class.ancestors()
puts "\n\n\n"

puts BasicObject.superclass==nil

def my_ancestors(current_class)
  a = []
  a.push current_class
  sc = current_class.superclass
  until sc==nil
    a.push sc
    sc = sc.superclass
  end
  a
end

puts my_ancestors(obj.class)
分享到:
评论

相关推荐

    Ruby 方法、类

    在Ruby中,方法和类是构建程序的基本元素,它们是实现代码重用和组织的关键概念。 ### 方法(Methods) 方法在Ruby中是可重复使用的代码块,它们接受参数,执行特定任务,并可能返回值。方法定义使用`def`关键字...

    Ruby语言个人学习小案例分享-Ruby类案例

    Ruby语言个人学习小案例分享-Ruby类案例,适合初学者学习参考,附带源码在里面。

    pundit, 通过面向对象设计和纯 ruby 类进行最小授权.zip

    pundit, 通过面向对象设计和纯 ruby 类进行最小授权 Pundit Pundit提供了一组帮助器,它指导你利用正则 ruby 类和面向对象设计模式构建一个简单。健壮和可以扩展的。链接:API文档源代码 。行为准则。赞助: 安装gem...

    ruby小程序

    不过,根据标题和描述,我们可以推测这是一个关于Ruby小程序的项目,可能涉及了上述的一些Ruby编程基础知识。如果需要深入学习或开发Ruby小程序,建议阅读官方文档、参考书籍或者参加在线教程,以便系统地掌握Ruby...

    关于ruby学习的资料

    在Ruby学习中,这样的文档可能是关于错误处理、异常捕获(trap)或系统调用的相关教程。在Ruby中,`trap`常用于设置信号处理器,允许程序在接收到特定系统信号时执行自定义操作,这在编写可靠和响应迅速的系统中非常...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby-Refrigerator冻结所有核心ruby类

    然而,这种灵活性也意味着在某些情况下,程序可能会无意中修改核心的Ruby类或模块,这可能导致不可预测的行为,尤其是在生产环境中。为了防止这种情况,开发者可以使用特定的工具,如"Ruby-Refrigerator"。 "Ruby-...

    类变量、全局变量、实例变量, 多态、为什么ruby、ruby编码规范

    本文将深入探讨Ruby语言中的类变量、全局变量、实例变量,以及多态的概念,并结合Ruby编码规范来阐述如何有效地编写代码。 一、类变量 类变量在Ruby中以`@@`前缀表示,它们是属于类或模块的共享变量,不会被类的...

    Ruby-rubybuild编译和安装Ruby

    Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...

    ruby 移动图片小工具

    标题中的“ruby移动图片小工具”指的是一个使用Ruby编程语言编写的实用程序,它的主要功能是整理和管理图片。这个小工具将帮助用户按照图片的拍摄日期自动将图片分类并移动到相应的目录下,这对于组织大量照片库或者...

    [转] ruby学习一个综合小练习

    标题中的“ruby学习一个综合小练习”表明这是一个关于Ruby编程语言的学习资源,可能是通过一个实际的小项目或练习来帮助学习者提升对Ruby的理解。描述中提到的“博文链接”指向了一个特定的博客文章,虽然没有给出...

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    关于ruby的几本电子书

    这里提到的两本书籍——"the ruby way.chm"和"rubyonrails2204.pdf",很可能是关于Ruby语言和Ruby on Rails框架的深入学习资源。 1. "The Ruby Way":这本书通常被看作是Ruby编程的权威指南。它深入探讨了Ruby语言...

    Ruby-关于Ruby的相关学习说明了解

    Ruby

    Ruby小例子(源代码)

    标题中的“Ruby小例子(源代码)”表明这是一个关于Ruby编程语言的学习资源,包含了多个示例源代码文件。Ruby是一种面向对象的、动态类型的编程语言,由Yukihiro Matsumoto(松本行弘)创建,它强调简洁性和可读性,...

    Ruby编程Ruby Programming

    - **动态性**:Ruby支持运行时修改代码结构,允许开发者在程序运行过程中改变类和方法的行为。 - **元编程能力**:Ruby提供了一种称为元编程的技术,使得程序可以自我修改和自我扩展。 ### 二、Ruby编程基础 #### ...

    Ruby-Ruby的面向对象的枚举

    Ruby的枚举通常指的是枚举类(Enum Class),这是一种自定义枚举类型的方法,允许我们创建具有特定行为的枚举。在本篇文章中,我们将深入探讨Ruby如何实现面向对象的枚举以及它在实际开发中的应用。 首先,让我们...

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...

    ruby语言帮助文当

    2. `ruby20-core.chm`:可能是关于Ruby 2.0核心库的文档,核心库包含了语言的基本结构和功能,如类、模块、对象、变量、控制结构等,是编写任何Ruby程序不可或缺的部分。 3. `ruby20.chm`:这个文件可能是整个Ruby ...

Global site tag (gtag.js) - Google Analytics