#块中的代码总是包含在大括号 {} 内。
#块总是从与其具有相同名称的函数调用。这意味着如果您的块名称为 test,那么您要使用函数 test 来调用这个块。
#您可以使用 yield 语句来调用块。
#block和方法之间是协同例程,它们之间来回地转换控制权

#不带参数
def test
    puts "test1"
    yield            #使用多个yield,可以多次执行block中的代码
    puts "test2"
end
test{               #多个block可以多次执行所有代码(即定义的方法中的代码)
    puts "hello ruby"
}
test{
    puts "hello world"
}

#带参数
def test1
    yield 100,1000,1
end
test1 {|i,j,k| puts i+j+k}        # ||中用来接收来自yield的参数

#迭代
nums = Array[1,2,3,4]
nums.each {|num| puts num}

# BEGIN块:在文件加载时要运行(即在该文件中第一个运行)
# END块:程序完成执行后要运行的代码块
BEGIN{
    puts "begin"
}
END{
    puts "end"
}

 

posted @ 2016-07-18 14:05  Hsinwang  阅读(166)  评论(0编辑  收藏  举报