Ruby学习笔记2(方法、块、模块)
2016-03-21 14:35
246 查看
方法
Ruby中的方法就是其他语言中的函数,名称应以小写开头,以免被解释为常量。参数可有可无,可以有默认值也可以没有。每个方法都有默认的返回值,就是最后一个语句的值。def test(a1="Ruby", a2="Perl") puts "编程语言为 #{a1}" puts "编程语言为 #{a2}" end test "C", "C++" test
要传入数量可变的参数:
def sample (*test) end
alias和undef的用法还不太清楚
块
块是一段包含在{}内的代码这段代码可以从别处调用。甚至像块来传递参数都是可以的,一个或多个参数。
def test yield 5 puts "在 test 方法内" yield 100 end test {|i| puts "你在块 #{i} 内"}
另一种作为函数参数的调用方法:
def test(&block) block.call end test { puts "Hello World!"}
在参数前面加上&代表接收一个块作为函数的参数。这个参数一般放在最后,特别是同时有*参数出现时。
可以声明BEGIN和END块,这将在文档被加载和程序运行完毕后被调用。
模块
模块存在的目的主要就是定义一个命名空间,使这个命名空间里的方法和常量不会和其他地方有冲突。模块定义和类定义很像,模块方法和类方法定义也很像,调用模块方法就是模块名点上方法名。调用模块常量使用模块名双冒号常量名。
module Trig PI = 3.141592654 def Trig.sin(x) # .. end def Trig.cos(x) # .. end end
require语句用于引用已经有的模块。
include用于在类中嵌入模块。
module A def a1 end def a2 end end module B def b1 end def b2 end end class Sample include A include B def s1 end end samp=Sample.new samp.a1 samp.a2 samp.b1 samp.b2 samp.s1
这个例子用一种奇妙的方法实现了Sample对A,B的多继承。
相关文章推荐
- 红宝石(Ruby)史话
- Ruby简明教程之循环语句介绍
- ruby 一些简单的例子
- Ruby on Rails在Ping ++ 平台实现支付
- Ruby 之 class 中的 private、 protected、public
- Ruby中操作文件的方法介绍
- Ruby中的集合编写指南
- CentOS 6.3下编译安装Ruby 2.0笔记
- Ruby基本的环境变量设置以及常用解释器命令介绍
- Ruby编程中关于中断和返回的用法教程
- Ruby中的异常处理代码编写示例
- Ruby中的变量学习总结
- 几个加速Ruby on Rails的编程技巧
- Ruby配置rspec和RestClient来检测服务器
- 分析Cache 在 Ruby China 里面的应用情况
- Ruby中数组的一些相关使用方法
- 编写Ruby代码注释时需要注意的一些问题
- Ruby类继承、抽象类、类拓展混入、代理类实例
- Ruby简明教程之方法(Method)介绍