gpt4 book ai didi

ruby 模块

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ruby 模块由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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的设计者也做了一个类似的选择). 。

最后此篇关于ruby 模块的文章就讲到这里了,如果你想了解更多关于ruby 模块的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com