Ruby中的块、Proc对象和Lambda表达式
1. 块的基础
1.1 块作为无名函数
在Ruby中,块可以被看作是一种无名函数或方法,常用于对列表或值范围中的元素进行迭代。例如:
3.times { |i|
puts( i )
}
这个代码会输出0到2的数字。这里的 { |i| puts( i ) } 就是一个块, |i| 是块参数。如果将这个块写成普通的Ruby方法,会是这样:
def aMethod( i )
puts( i )
end
for i in 0..2
aMethod( i )
end
这两种方式的主要区别在于,前者使用无名方法(块)处理 i 的值,而后者调用了一个命名方法。
1.2 常见的块使用场景
我们之前已经多次使用过块,例如使用 do..end 块来迭代范围:
(1..3).each do |i|
puts(i)
end
也使用过 do..end 块来迭代数组:
arr = ['one','two','three','four']
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



