15、Ruby中的块、Proc对象和Lambda表达式

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']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值