ruby 模块
所属分类:
脚本专栏 / ruby专题
阅读数:
999
收藏 0赞 0分享
Ruby的模块非常类似类,除了:
模块不可以有实体
模块不可以有子类
模块由module...end定义.
实际上...模块的'模块类'是'类的类'这个类的父类.搞懂了吗?不懂?让我们继续看下去吧.
模块有两种用法.其一是将相近的方法和实体放在一个相对集中的域里.Ruby标准包里的Math模块就扮演着这一角色:
ruby> Math.sqrt(2)
1.41421
ruby> Math::PI
3.14159
::操作符告诉 Ruby 解释器在哪里找常数的值(可以想像,Math外的其它模块用PI表示其它的一些东西).如果我们想省掉 :: 直接调用一个模块的方法和常数,我们可以用 include:
ruby> include Math
Object
ruby> sqrt(2)
1.41421
ruby> PI
3.14159
模块的另一用法是糅和(mixin).某些OO语言,包括C++,允许多重继承(multiple inheritance),即从多个的父类里继承. 现实世界里一个多重继承的例子是闹钟:你可以想像闹钟属于钟类同是属于带蜂音器的事物类.
Ruby并未特意实现真正的多重继承,但糅和技术是一很好的替代.记得模块无法实体化或子类化;但如果我们在类定义里include一个方法,
它的方法便实际上已加入,或"糅合"进这个类.
糅合可以视为一种寻求一切我们希望得到的特定属性的方法.举个例子,如果一个类有个 each 方法,把标准库里的Enumerable模块糅合进来就自然地赋予我们 sort 和 find 两个方法.
模块的使用令到我们获得多重继承的基本功能却可通过简单的树结构表述类关系,同时也可观地简化了语言的实现(Java的设计者也做了一个类似的选择).
简要解读Ruby面向对象编程中的作用域
作用域在面向对象编程中是一个十分重要的概念,程序构建时必须要理解清楚类和方法以及对象的作用范围,接下来就为大家简要解读Ruby面向对象编程中的作用域
收藏 0赞 0分享
Ruby程序中正则表达式的基本使用教程
和Python与Perl一样,Ruby对正则表达式的支持也是相当好的,这里送出整理的Ruby程序中正则表达式的基本使用教程,需要的朋友可以参考下
收藏 0赞 0分享
Ruby中的gem包管理的使用及gem源搭建教程
RubyGems是Ruby世界中的包管理工具,gem命令使用起来就如同Linux中的apt与yum一样,也可以构建自己的gem源,下面就带大家一起来学习Ruby中的gem包管理的使用及gem源搭建教程
收藏 0赞 0分享
Ruby编写HTML脚本替换小程序的实例分享
这篇文章主要介绍了Ruby编写HTML脚本替换小程序的实例分享,单纯使用Ruby中的字符串替换方法而没有涉及更复杂的正则表达式,需要的朋友可以参考下
收藏 0赞 0分享
详解Ruby中的代码块对象Proc
在Ruby中一个代码块block不是对象,但可以用Proc来替代其作为对象进行操作,接下来我们就来详解Ruby中的代码块对象Proc
收藏 0赞 0分享
查看更多