Block
定义
some_array.each { |value| puts value + 3 }
sum = 0
other_array.each do |value|
sum += value
puts value / sum
end
A block is somewhat like the body of an anonymous method
Block can take parameters
Block 只有被 method 调用时才会起
1、什么是代码块
在Ruby中,{}或do…end之间的代码是一个代码块。代码块只能出现在一个方法的后边,它紧接在方法最后一个参数的同一行上,由yield关键字调用。例如:
[1,2,3,4,5].each { |i| puts i }
[1,2,3,4,5].each do |i|
puts i
end
块变量:以yield关键字调用block也可以传递参数,block中竖线(|)之间给出的参数名用于接收来自yield的参数。
竖线之间(如上例中的 | i |)的变量被称作块变量,作用和