Ruby教程之四、块(BLOCK)和迭代器(Iterator)
发布:liao | 发布时间: 2009年8月24日这一节,我们来看看RUBY中比较有意思,同样也很强大的一项功能:块和迭代器。
所谓块,顾名思义就是代码块,多行代码放在一起就成了块而已。而且它的形式也确实能体现出这一特点来。块就是用{}或者用do..end括起来的多行代码。
{ puts "Hello" } #这是一个块
do ###
club.enroll(person) # 这同样也是一个块
person.socialize #
end ###
当然了,单独地把几行代码这样括起来并没有太大的意义。块的真正的作用是当你创建了一个块之后,你就可以将它与函数联系在一起。你可以在调节器用函数的那一行代码之后加入一个块。这样就可以使用yield语句来多次调节器用这个块。我们还是来看一个例子吧。
class Hello
def sayHello(name)
yield
puts "Hello #{name}"
yield
end
end
myHello = Hello.new()
myHello. sayHello("hinus"){ puts "in the block" } #如果函数有参数的话,应该放在函数名之后,在块之前。
你不可以向代码块传入参数。而在块里,应该用(|)符号将形式参数括起来,用来接受实际参数。还是来看一个例子吧。

animals.each {|animal| puts animal } # iterate over the contents
5.times { print "*" }
3.upto(6) {|i| print i }
('a'..'e').each {|char| print char }
produces:
cat dog horse *****3456abcde
- 相关文章:
Ruby教程之三、Hello World by Ruby (2009-8-24 1:14:20)
Ruby教程之二、安装RUBY和Rails (2009-8-24 1:12:21)
Ruby教程之一、初识Ruby (2009-8-24 1:11:18)
什么是ror (2009-8-24 1:4:59)
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





