时间:2021-05-22
Ruby的模块非常类似类,除了:
模块不可以有实体
模块不可以有子类
模块由module...end定义.
实际上...模块的'模块类'是'类的类'这个类的父类.搞懂了吗?不懂?让我们继续看下去吧.
模块有两种用法.其一是将相近的方法和实体放在一个相对集中的域里.Ruby标准包里的Math模块就扮演着这一角色:
ruby>Math.sqrt(2)
1.41421
ruby>Math::PI
3.14159
::操作符告诉Ruby解释器在哪里找常数的值(可以想像,Math外的其它模块用PI表示其它的一些东西).如果我们想省掉::直接调用一个模块的方法和常数,我们可以用include:
ruby>includeMath
Object
ruby>sqrt(2)
1.41421
ruby>PI
3.14159
模块的另一用法是糅和(mixin).某些OO语言,包括C++,允许多重继承(multipleinheritance),即从多个的父类里继承.现实世界里一个多重继承的例子是闹钟:你可以想像闹钟属于钟类同是属于带蜂音器的事物类.
Ruby并未特意实现真正的多重继承,但糅和技术是一很好的替代.记得模块无法实体化或子类化;但如果我们在类定义里include一个方法,
它的方法便实际上已加入,或"糅合"进这个类.
糅合可以视为一种寻求一切我们希望得到的特定属性的方法.举个例子,如果一个类有个each方法,把标准库里的Enumerable模块糅合进来就自然地赋予我们sort和find两个方法.
模块的使用令到我们获得多重继承的基本功能却可通过简单的树结构表述类关系,同时也可观地简化了语言的实现(Java的设计者也做了一个类似的选择).
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
概括、ruby程序由一个或多个ruby源文件组成,源文件由模块组成,模块内部有控制结构、类对象、方法、及表达式等元素,下面就按照这个思路来总结ruby的程序组织
环境配置在使用Ruby编码或解码JSON数据前,我们需要先安装RubyJSON模块。在安装该模块前你需要先安装Rubygem,我们使用Rubygem安装JSON
当我们在写模块的时候,或多或少需要直接运行这个文件也可以执行一些方法,但是这样对于当这个模块被require或者include时,显得不好,在ruby里,有没有
安装Ruby和Gem下载rubywgethttps://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.gz解压
Ruby的安装可以去Ruby的官方网站下载Ruby1.56的Windows安装包,安装安毕后,打开Dos窗口,输入ruby-v显示ruby1.8.6(2007-