ruby简单的基本 6
模
像类似的模块,那里 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相关推荐
- Ruby 简单入门(一)
最近实习快结束了,也被谈话过了,确定可以把我留下来,但是这面是做javaWeb的,很少时间放在Ruby上了,下午有点闲,写写吧,一下子写不完,我慢慢来.... 目测有40个左右例子,尽量涵盖多点知识, ...
- Ruby 简单入门(二)
8..Ruby 中有意思的东西 '#'号被用来做单行注释 单行语句不需要以:分号结尾,不过要想使两条单条语句放在一行可以使用,稍后代码例子一起放出 反斜杠除了转义还可以用来连接字符 变量是不需要声明的 ...
- ruby简单的基础 4
后缀标点符号 =结尾 假设方法名字以=结尾的,那么在调用此方法时能够省略这个=. ?结尾 作为一个实用惯例,那些返回布尔值的方法通常都有一个以问号结尾的名字. .结尾 这个命名惯例通常时对两种方法区分 ...
- 对比 Ruby 和 Python 的垃圾回收
注:这篇文章基于我在布达佩斯的RuPy大会上所作的演讲.我觉得与其直接将幻灯片发布出来,不如在我还有印象的时候将它写成博客来的更有意义.同 样,我会在将来发布RuPy大会的视频链接.我计划将在Ruby ...
- 使用 Ruby 开发代码生成器
使用 Ruby 开发代码生成器 使用 Ruby 开发代码生成器 使用 Ruby 开发代码生成器 高 尚, 软件工程师 高尚是一名软件开发工程师,具有 6 年的软件从业经验,在 Java 开发和财务软件 ...
- 【学习笔记之程序员】笔记
2015年软考 Trojan.开头 木马病毒 VBS..JS..Script.开头 脚本病毒 Worm.开头 蠕虫病毒 "Kingsoft Office"是金山公司开发办公软件套件 ...
- Git之深入解析如何借助Git的配置方法和钩子机制来自定义Git需求
一.前言 到目前为止,我们已经了解了 Git 基本的运作机制和使用方式,学习了许多 Git 提供的工具简单且有效地使用它,可以高效地帮助我们工作,提升我们的效率. 如果还不清楚 Git 的基础使用流程 ...
- 什么是云平台,云平台的分类和优势有哪些?
云平台又称云计算平台,就是一个云上的平台, 为用户提供各种各样的远程服务.通俗理解云指的是远程计算机,计算指指计算机的交付.使用与服务,将云和计算组合在一起就形成了一个平台,云平台提供计算.网络和存储 ...
- 软考中级-嵌入式系统设计师(三)
第三章 软件基础 1.宿主机和目标机.交叉编译 2.解释和编译 编译方式能生成目标程序,编译器不参与运行控制,程序执行速度快,效率高. 解释方式不生成目标程序,解释器参与运行控制,程序执行速度慢,效率 ...
最新文章
- Centos6.2救援模式修改密码
- 设计模式之监听器模式
- json数据映射到html,在GoLang中将Json数据映射到Html模板
- ABAP formula
- 地图定位的坐标和mapview中显示的当前位置信息不一致
- adcetris研发历程_抗体类药物质量控制—张伯彦20130730.pdf
- 【面向对象设计原则】之依赖倒置原则(DIP)
- Oracle Goldengate Director软件截面图
- 04 捷联式惯导系统概要
- VUE 下载文件流 文件无法打开,缺失数据
- C语言strcpy()库函数的实现
- 多WLAN口路由器原理分析
- 服务器raid5阵列修复,RAID5磁盘阵列的安装与故障修复
- JavaWeb(JSP中的JSTL核心标签学习) c:foreach报错500? 错误原因:ArrayList<String> people = new ArrayList<>()
- 在DB2中,使用sql 计算昨天、最后一天等日期
- sudo: /etc/sudoers.d 可被任何人写
- ExecuteNonQuery方法和ExecuteScalar方法的区别
- vscode查找快捷键
- linux汉诺塔实验报告,数据结构-汉诺塔-实验报告
- windows系统开机自动进行NTP时间同步和系统时间修正
热门文章
- Boost:bind绑定__cdecl(成员函数)测试程序
- ITK:预定义操作以对应两个图像中的像素
- DCMTK:将XML文档转换为DICOM文件或数据集
- OpenCV简单的过滤器平滑的实例(附完整代码)
- OpenCV将现有算法移植到G-API的实例(附完整代码)
- C语言删除单链列表中间的节点的算法(附完整源码)
- OpenGL计算着色器
- C++树的层次遍历(附完整源码)
- C++shell排序(附完整源码)
- QT的QRadioTuner类的使用