Ruby模块Module
2015-10-16 15:16
155 查看
模块(Module)是一种把方法、类和常量组合在一起的方式。模块(Module)为您提供了两大好处。
模块提供了一个命名空间和避免名字冲突。
模块实现了 mixin 装置。
模块(Module)定义了一个命名空间,相当于一个沙盒,在里边您的方法和常量不会与其他地方的方法常量冲突。
模块类似与类,但有一下不同:
模块不能实例化
模块没有子类
模块只能被另一个模块定义
模块常量命名与类常量命名类似,以大写字母开头。方法定义看起来也相似:模块方法定义与类方法定义类似。
通过类方法,您可以在类方法名称前面放置模块名称和一个点号来调用模块方法,您可以使用模块名称和两个冒号来引用一个常量。
我们可以定义多个函数名称相同但是功能不同的模块:
就像类方法,当您在模块中定义一个方法时,您可以指定在模块名称后跟着一个点号,点号后跟着方法名。
模块提供了一个命名空间和避免名字冲突。
模块实现了 mixin 装置。
模块(Module)定义了一个命名空间,相当于一个沙盒,在里边您的方法和常量不会与其他地方的方法常量冲突。
模块类似与类,但有一下不同:
模块不能实例化
模块没有子类
模块只能被另一个模块定义
语法
module Identifier statement1 statement2 ........... end
模块常量命名与类常量命名类似,以大写字母开头。方法定义看起来也相似:模块方法定义与类方法定义类似。
通过类方法,您可以在类方法名称前面放置模块名称和一个点号来调用模块方法,您可以使用模块名称和两个冒号来引用一个常量。
实例
#!/usr/bin/ruby # 定义在 trig.rb 文件中的模块 module Trig PI = 3.141592654 def Trig.sin(x) # .. end def Trig.cos(x) # .. end end
我们可以定义多个函数名称相同但是功能不同的模块:
#!/usr/bin/ruby # 定义在 moral.rb 文件中的模块 module Moral VERY_BAD = 0 BAD = 1 def Moral.sin(badness) # ... end end
就像类方法,当您在模块中定义一个方法时,您可以指定在模块名称后跟着一个点号,点号后跟着方法名。
相关文章推荐
- Ruby文件的输入与输出
- Ruby on Rails bundle install 缺失模块安装
- RubyGems 镜像 - 淘宝网 Ruby 国内镜像 解决 Ruby Gem 需要翻墙
- Ruby -reverse',upcase' & '.downcase'
- Ruby - length
- Ruby -puts and print
- 每个程序员都应该学习使用Python或Ruby
- 如何在Mac上安装Ruby
- Ruby 变量
- 关于CocoaPod无法升级以及无法下载第三方库和Cocoapods在OS X 10.11系统上的无法正常使用的问题
- ActiveAdmin安装
- [No000011]Ruby之attr_reader,attr_writer,attr_accessor理解&用法
- 如何在Mac OS X上安装 Ruby运行环境
- Ruby 的环境搭建及安装
- Ruby
- [No000010]Ruby 中一些百分号(%)的用法小结
- 从后端到页面:如何全方位监控 Ruby 应用?
- 从后端到页面:如何全方位监控 Ruby 应用?
- Eclipse使用Ruby
- 新人学ruby---print、puts和p的区别