最近对红宝石很感兴趣。喜欢rails的简约,喜欢ruby的人性化。《Ruby元编程》它讲述了你和Bill(一个资深的Ruby程序员)在办公室一周发生的故事。读完后感觉对编程有了一个新的了解。关于“元”这个字眼。到周天再解释吧。
话不多说,先看一段代码进入今天的主题。
3.times do
class C
puts "Hello"
end
=> Hello
Hello
Hello
//====================
Class D
def x; 'x' end
end
Class D
def y; 'y' end
end
obj = D.new
obj.x =>'x'
obj.y =>'y'
我们知道在Java是一种编译后在虚拟机中运行中的静态的语言,不允许在同一个包里面有两个相同的类出现,更不允许,在类定义后,重新去定义。ruby作为一种动态类拥有以上的特别的写法。
如上 C类不是被定义了3个,而是执行了3次。
D类第一次定义了一个x方法,返回值为'x'。第二次又定义了一个y方法,返回'y'。
我们称以上的技术叫“打开类”技术。非常的灵活。当然打开类也有不好的地方,比如类污染。
- 类的真相
1.一个对象的实例变量存在于对象本身,而一个对象的方法存在于对象自身的类。
String.instance_methods == "abc".methods # true
String.methods == "abc".methods #false
2.类自身也是对象。
1."hello".class # => String
String.class # =>Class
2. Class.instance_methods #=> [:superclass,:allocate,:new]
3. String.superclass #=> Object
Object.superclass #=>BasicObject
BasicObject.superclass #=> nil
4. Class.superclass # => Module
Module.superclass #=>Object
5. class Myclass;end
obj1 = Myclass.new
obj2 = Myclass.new
类和其他对象一样也有自己的类(如1),它的名字叫做Class。类中也有方法(如2),所有的类最终都继承与Object,Object本身又继承BasicObject,BasicObject是ruby体系的根节点。(如3).一个类只不过是一个增强的Module,增加了3个方法 new , allocate, superclass(如4).obj1和Myclass 都是一个引用,唯一的区别是obj1是一个变量,而Myclass是一个常量(任何以大写字母开头的引用)。
对象无非就是一组实例变量外加一个指向其类的引用。对象的方法并不存在于对象中,而存在类中。这些方法称为类的实例方法。
类无非就是一个对象外加一组实例方法和易对其超类的引用。Class类是Moudule类的子类。因此类也是一个模块。
跟任何其他对象一样,类有自己的方法,比如new方法。这些是Class类的实例方法。跟其他对象一样,类必须通过引用进行访问。你已经使用过常量引用过它们:这就是类的名字。
本人为ruby新手,希望各路高手轻喷。
分享到:
相关推荐
ruby元编程.pdf ruby 元编程 这本书对ruby的调用原理做了非常精辟的分析。 ruby 元编程 这本书对ruby的元编程方式做了比较好的阐释。 ruby 元编程 这本书对结对编程有一个很好的提现。
Ruby元编程第二版,中文影印版,便于英文不好的同学们学习
2. 动态性:Ruby是一门动态性极强的编程语言,允许开发人员在运行时通过元编程(metaprogramming)来修改和扩展代码的行为。这种动态性使得Ruby具有很大的灵活性,可以应对各种需求和场景。 3. 面向对象编程:Ruby...
ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1
Ruby元编程pdf
ruby 元编程 中文 《Ruby元编程》以案例形式循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby代码库的实现细节,作者不仅向读者展示了Ruby编程的优势和Ruby特有的解决问题的方式,更详细开...
《Ruby元编程》PDF版本下载
Ruby元编程中文版
本书的第一部分“Ruby元编程”是本书的核心部分,他讲述了一个资深程序员在办公室一周发生的事情。 本书的第二部分“Rails中的元编程”是一个元编程实例,Rail是Ruby标志性框架。 在阅读本书之前,需要了解本书的三...
ruby元编程 第2版 中文 目录清晰 方便广大通勤族路上看,如果喜欢请购买正版纸质图书
ruby笔记3ruby笔记3ruby笔记3ruby笔记3ruby笔记3ruby笔记3
Ruby编程,Ruby编程,Ruby编程,Ruby编程,Ruby编程,
ruby笔记2ruby笔记2ruby笔记2ruby笔记2ruby笔记2
《Ruby元编程》以案例形式循序渐进地介绍了Ruby特有的实用编程技巧 元编程 通过分析案例 讲解例题 回顾Ruby代码库的实现细节 《Ruby元编程》作者Paolo Perrotta不仅向读者展示了Ruby编程的优势和Ruby特有的解决问题...
Ruby 是一种高级编程语言, 它被用于开发各种应用程序和网站。 自 2000 年以来, Ruby 已经成为了互联网编程中最受欢迎的工具之一。 本文将详细 介绍 Ruby 编程语言的基础知识, 包括变量、 运算符、 流程控制、 ...
Ruby元编程 书籍配套源代码 Metaprogramming Ruby source code
Metaprogramming Ruby 2nd Edition ruby元编程
元编程:编写可以编写代码的代码,ruby和rails的技术核心
《Ruby元编程》以案例形式循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby代码库的实现细节,作者不仅向读者展示了Ruby编程的优势和Ruby特有的解决问题的方式,更详细开列出发挥其优势的...