block:就是两种方法的叠加, 本质还是执行def...end方法,只不过里面加入了块方法而已,可以把块看成带method的参数。
一、块的两种表示方法:
1、[1,2,3].each { |a| puts a*2} { }之间的部分,表示块
2、[1,2,3].each do |a| do end之间的部分,表示块
puts a*2
end
二、块的使用方法:
def take_block(x, &block) &表示引入块,block是块名称
a = block.call(x) 这里call是块的调用方法
b = a*2
end
使用:
take_block(1) do | k |
k + 1
end
或者 take_block(1) { |k| k+1} 将参数1和块{ |k| k+1},代入到take_block中去
结果是:4
网友评论