`

ruby 内建类关系

 
阅读更多
我们看到Ruby里,可以直接写puts, print等,感觉像是命令动词一样,这和我们说的Ruby里一切都是对象有点冲突,其实我们理解了Ruby中Class, Module,Object,Kernel的关系,就明白了,通过下面的代码,我们知道Module是Class的父类.

puts Class.ancestors  => Class  Module Object Kernel  BasicObject

puts Module.ancestors => Module  Object  Kernel  BasicObject

puts Object.ancestors => Object  Kernel  BasicObject

puts Kernel.ancestors => Kernel

puts BasicObject.ancestors =>  BasicObject

以上说明:
Class的父类是Module
Module的父类是Object
Object的父类是BasicObject,其中,Object中include了Kernel模块
--------------------------------------------------------
puts Class.class  => class

puts Module.class => class

puts Object.class => class

puts Kernel.class => Module

puts BasicObject.class => class
以上说明:
Kernel是模块,其他都是类
--------------------------------------------------------

Object混入了Kernel这个模块,所以Kernel中内建的核心函数就可以被Ruby中所有的类和对象访问。Object的实例方法由Kernel模块定义。
我们可以把Kernel理解为系统预定义的一些方法,我们可以在所有的对象上使用,使用时不需要使用类型作为前缀,当然我们也可以加上Kernel,看起来像C#的静态方法。
Kernel.puts "hello world"
分享到:
评论

相关推荐

    Ruby语言中文教程.rar

    Ruby还提供了丰富的内建模块,如`Math`模块包含数学函数,`File`模块处理文件操作,`Kernel`模块包含全局函数。 Ruby的Gem库是其强大之处,它是一个庞大的第三方库生态系统,例如`ActiveRecord`用于数据库操作,`...

    Ruby-femto一个用Ruby编写的最小文本编辑器没有依赖关系

    这些功能可能通过Ruby的内建模块或者自定义逻辑来实现。 项目名为“femto-master”的压缩包文件很可能包含了Ruby-femto的源代码,包括主程序文件、测试用例、可能的文档和其他辅助资源。开发者可以下载这个压缩包,...

    Ruby-fastrubyRuby编写快速收集常见Ruby惯用语

    Ruby的内建数组和哈希数据结构提供了丰富的操作,但不同的操作有不同的性能特性。`fast-ruby` 比较了`map`、`each_with_object` 和`inject` 等方法,解释了何时选择哪种方式会更高效。 4. **条件语句与逻辑运算符*...

    Programming Ruby 1.9

    10. **内建类和模块的扩展**:Ruby 1.9对很多内建类和模块进行了扩展和增强,比如`String`、`Array`、`Hash`等,提供了更多便捷的方法。 通过阅读《Programming Ruby 1.9》,读者不仅可以掌握Ruby 1.9的最新特性,...

    个人收藏 ruby 语言 开发经典教程集

    《Ruby语言.chm》可能是该教程集中的一份核心资料,通常会深入介绍Ruby的基础语法、类与对象的概念、模块、方法、块、Proc和Lambda等核心概念。Ruby的语言设计哲学是"表达力就是生产力",它的语法非常贴近自然语言,...

    Ruby-pgsearch利用PostgreSQL的全文搜索构建ActiveRecord的命名空间

    PostgreSQL是一个功能强大的开源关系型数据库系统,其内建的全文搜索功能支持分词、排名、拼写纠正等多种特性。它通过TSearch2(文本搜索引擎)实现了这些功能,可以处理多种语言,并提供了高度可定制的搜索配置。 ...

    Ruby语言中文教程,加示例程序,张开川著

    7. **标准库和内建模块**:Ruby的标准库提供了许多内置功能,如文件操作、网络通信、日期和时间处理等。教程会介绍如何使用这些模块来增强应用程序的功能。 8. **Ruby on Rails**:虽然不是Ruby语言本身的一部分,...

    Ruby-DatabaseCleaner在Ruby中清洗数据库的策略

    这种策略通常用于像Sequel这样的ORM,它没有内建的事务支持。 5. **Specific Transaction Strategy**:对于某些ORM,如Sequel,Database Cleaner提供特定的事务策略,比如`Sequel::Model.db.transaction`。 在实际...

    ruby-language-quickref.zip_About Language

    9. **内建集合**:Ruby提供了数组(Array)、哈希(Hash)、集合(Set)等丰富的数据结构。 10. **闭包**:Ruby的Proc和Lambda实现了闭包,可以捕获定义时的环境变量。 Ruby on Rails(Rails)则是在Ruby基础上...

    ruby on rails, 非常棒的启蒙教材(转载)

    Rails的核心特性包括ActiveRecord,这是一个对象关系映射(ORM)系统,它允许开发者用Ruby代码操作数据库,无需编写SQL。此外,ActionView提供了一套强大的模板引擎,使开发者可以轻松创建动态网页。Action...

    ruby

    2. **ActiveSupport**:提供了一系列实用工具和库,增强了Ruby的内建功能。 3. **ActionController**:处理HTTP请求,将它们转换为对模型的操作,并将结果呈现给视图。 4. **ActionView**:负责渲染HTML,可以使用...

    大中小型公司建站框架

    以下将详细介绍几个适用于中小型公司建站的框架,并探讨它们各自的特点、优势以及如何利用它们来构建新闻类网站。 1. Django Django是一个高级的Python Web框架,以其“ batteries included ”的理念而著名,提供了...

    Algorithms-and-Data-Structures-in-Ruby:只是为了教育

    6. **集合(Set)**:不重复元素的集合,Ruby有内建的Set类提供集合操作。 7. **树(Tree)**:分层数据结构,如二叉树、红黑树等。在Ruby中,可以通过自定义类构建。 8. **图(Graph)**:用于表示节点和边的关系...

    rcairo:开罗的Ruby绑定

    依赖关系 Ruby> = 2.2.1 开罗> = 1.2.0 安装 包¶ ↑ 建议采用这种方式。 # gem install cairo 自建¶ ↑ 对于实验用户。 将以下内容添加到您的Gemfile中: gem "cairo" , github: "rcairo/rcairo" 然后...

    ruby-tutorial-friends:教程入门项目的仓库-Rails上的ruby

    Ruby强调程序员的生产力和幸福感,提供了许多内建的工具和库,比如元编程能力,使得编写自定义 DSL(领域特定语言)成为可能。 **Rails好友列表应用** 在本教程项目“ruby-tutorial-friends”中,你将学习如何使用...

    rails_sample_app:Ruby on Rails 教程

    在`app/controllers`目录下,你会发现每个控制器的Ruby类,如`application_controller.rb`是所有控制器的基类。每个控制器类可以包含多个动作,如`index`、`create`等,对应处理不同的HTTP请求。 **5. 模板与布局**...

    ruby-pipeline

    在Ruby中,虽然没有直接的内建管道操作符(如Unix的`|`),但可以通过其他方式实现类似的功能。 ### 1. Array#map与块 Ruby的核心库提供了`Array#map`方法,这是一个非常强大的工具,可以用于对数组中的每个元素...

    test-ruby-c-extension:rake-compiler扩展编译的测试基础。 在交叉编译问题期间报告错误很有用

    在Ruby世界中,有时我们需要利用C语言来编写性能关键的部分或者扩展Ruby的内建功能,这时就需要用到Ruby的C扩展。"test-ruby-c-extension"项目是一个专门为测试Ruby C扩展编译而创建的框架,它特别关注的是使用`rake...

    个人播客的建站源代码

    3. **数据库**:个人播客网站需要存储用户信息、播客内容、评论等数据,因此会使用关系型数据库如MySQL、PostgreSQL,或者非关系型数据库如MongoDB、Redis。数据库的设计应考虑到查询性能和数据安全性。 4. **音频...

    zillow-api:使用 ruby​​ on rails 实现 Zillow API

    Ruby on Rails 是基于 Ruby 语言的 MVC 框架,它提倡“约定优于配置”的设计理念,提供了一套完整的工具链,包括数据库迁移、路由、模型关系、测试等,让开发者能快速构建 web 应用。在这个项目中,Rails 被用来创建...

Global site tag (gtag.js) - Google Analytics