Sunday, October 12, 2008

(7)Ruby 中的块结构

Ruby中存在块结构的概念,在模块、类和方法中都会用到它。块一般通过符号或者关键字定义,比如下面的代码就是一个
3.times { print "Ruby! " }

这种通过花括号包含起来的代码段,通常与迭代有关。还有一种是通过关键字do 和 and 声明的,尤其是当逻辑较多无法用一行代码描述清楚的情况下,通常使用这种方法:
1.upto(10) do |x|
print x
end

为了区别于其他代码块,我们称其他的代码块为内容体。比如if语句的开始和结束,一个循环的开始和结束,他们之间包含的内容为内容体:
module Stats                          # 一个模块
class Dataset # 模块中的一个类
def initialize(filename) # 类中的一个方法
IO.foreach(filename) do |line| # 方法中的一个块
if line[0,1] == "#" # if语句
next # 一个简单的打印语句
end # 结束if语句的内容体
end # 结束块
end # 结束方法体
end # 结束类内容体
end # 结束模块内容体

No comments: