像类似的模块,那里 class method 和 instance method。
module 没有new不能生成对象的例子
其中 class method 所谓的模块在模块化的方法,它能够直接调用。

module Foodef self.helloputs 'hello world!'enddef Foo.dear #module全局作用域内的self还是没有变,就是Module;puts 'dear..'endNUM = 100end

Foo.hello   #=>  'hello world!' 调用模块方法 模块名字.方法名字
Foo.dear #=>  'dear..' 调用模块方法 模块名字.方法名字
Foo::NUM#=>100 引用一个常数,使用模块名和两个冒号。

而对于模块里面的 instance method 实例方法,这样的方法不能直接调用。须要mixin到一个类中。
主要有两种形式:
一种是include,方法会被加入到实例方法中。
一种是extend,方法会被加入到类方法中。

module Mdef self.m_funputs 'm fun'enddef instance_funputs 'instance fun'endNUM = 100
endM.m_fun
M::m_fun
puts M::NUMputs '-----------------'class Ainclude M
end#A.m_fun
#A.instance_fun
#A.new.m_fun
A.new.instance_funputs '-----------------'
class Bextend M
end#B.m_fun
B.instance_fun
#B.new.m_fun
#B.new.instance_fun

一些总结

require, load,include都是Kernel模块中的方法。他们的差别例如以下:

require,load用于包括文件。include则用于包括的模块。

require载入一次,load可载入多次。

require载入Ruby代码文件时能够不加后缀名,load载入代码文件时必须加后缀名。

require用于加载普通情况下的库文件。和load用于加载配置文件。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

ruby简单的基本 6相关推荐

  1. Ruby 简单入门(一)

    最近实习快结束了,也被谈话过了,确定可以把我留下来,但是这面是做javaWeb的,很少时间放在Ruby上了,下午有点闲,写写吧,一下子写不完,我慢慢来.... 目测有40个左右例子,尽量涵盖多点知识, ...

  2. Ruby 简单入门(二)

    8..Ruby 中有意思的东西 '#'号被用来做单行注释 单行语句不需要以:分号结尾,不过要想使两条单条语句放在一行可以使用,稍后代码例子一起放出 反斜杠除了转义还可以用来连接字符 变量是不需要声明的 ...

  3. ruby简单的基础 4

    后缀标点符号 =结尾 假设方法名字以=结尾的,那么在调用此方法时能够省略这个=. ?结尾 作为一个实用惯例,那些返回布尔值的方法通常都有一个以问号结尾的名字. .结尾 这个命名惯例通常时对两种方法区分 ...

  4. 对比 Ruby 和 Python 的垃圾回收

    注:这篇文章基于我在布达佩斯的RuPy大会上所作的演讲.我觉得与其直接将幻灯片发布出来,不如在我还有印象的时候将它写成博客来的更有意义.同 样,我会在将来发布RuPy大会的视频链接.我计划将在Ruby ...

  5. 使用 Ruby 开发代码生成器

    使用 Ruby 开发代码生成器 使用 Ruby 开发代码生成器 使用 Ruby 开发代码生成器 高 尚, 软件工程师 高尚是一名软件开发工程师,具有 6 年的软件从业经验,在 Java 开发和财务软件 ...

  6. 【学习笔记之程序员】笔记

    2015年软考 Trojan.开头 木马病毒 VBS..JS..Script.开头 脚本病毒 Worm.开头 蠕虫病毒 "Kingsoft Office"是金山公司开发办公软件套件 ...

  7. Git之深入解析如何借助Git的配置方法和钩子机制来自定义Git需求

    一.前言 到目前为止,我们已经了解了 Git 基本的运作机制和使用方式,学习了许多 Git 提供的工具简单且有效地使用它,可以高效地帮助我们工作,提升我们的效率. 如果还不清楚 Git 的基础使用流程 ...

  8. 什么是云平台,云平台的分类和优势有哪些?

    云平台又称云计算平台,就是一个云上的平台, 为用户提供各种各样的远程服务.通俗理解云指的是远程计算机,计算指指计算机的交付.使用与服务,将云和计算组合在一起就形成了一个平台,云平台提供计算.网络和存储 ...

  9. 软考中级-嵌入式系统设计师(三)

    第三章 软件基础 1.宿主机和目标机.交叉编译 2.解释和编译 编译方式能生成目标程序,编译器不参与运行控制,程序执行速度快,效率高. 解释方式不生成目标程序,解释器参与运行控制,程序执行速度慢,效率 ...

最新文章

  1. Centos6.2救援模式修改密码
  2. 设计模式之监听器模式
  3. json数据映射到html,在GoLang中将Json数据映射到Html模板
  4. ABAP formula
  5. 地图定位的坐标和mapview中显示的当前位置信息不一致
  6. adcetris研发历程_抗体类药物质量控制—张伯彦20130730.pdf
  7. 【面向对象设计原则】之依赖倒置原则(DIP)
  8. Oracle Goldengate Director软件截面图
  9. 04 捷联式惯导系统概要
  10. VUE 下载文件流 文件无法打开,缺失数据
  11. C语言strcpy()库函数的实现
  12. 多WLAN口路由器原理分析
  13. 服务器raid5阵列修复,RAID5磁盘阵列的安装与故障修复
  14. JavaWeb(JSP中的JSTL核心标签学习) c:foreach报错500? 错误原因:ArrayList<String> people = new ArrayList<>()
  15. 在DB2中,使用sql 计算昨天、最后一天等日期
  16. sudo: /etc/sudoers.d 可被任何人写
  17. ExecuteNonQuery方法和ExecuteScalar方法的区别
  18. vscode查找快捷键
  19. linux汉诺塔实验报告,数据结构-汉诺塔-实验报告
  20. windows系统开机自动进行NTP时间同步和系统时间修正

热门文章

  1. Boost:bind绑定__cdecl(成员函数)测试程序
  2. ITK:预定义操作以对应两个图像中的像素
  3. DCMTK:将XML文档转换为DICOM文件或数据集
  4. OpenCV简单的过滤器平滑的实例(附完整代码)
  5. OpenCV将现有算法移植到G-API的实例(附完整代码)
  6. C语言删除单链列表中间的节点的算法(附完整源码)
  7. OpenGL计算着色器
  8. C++树的层次遍历(附完整源码)
  9. C++shell排序(附完整源码)
  10. QT的QRadioTuner类的使用