Ruby中的block、proc、lambda区别总结
在规则引擎中,Ruby的闭包使用特别频繁,而且有block,Proc和lambda等后几种形式的用法,很让人困惑。为了深入理解代码,再次认真学习了一下Ruby的闭包,特别是block,proc和lambda几种用法的异同,这次的周记就和大家分享一下心得。
闭包是Ruby相对其它语言特别优势之一,很多语言有闭包,但是唯有Ruby把闭包的优势发挥得淋漓尽致。Ruby的哲学之一:同一个问题现实中有多种解决方法,所以Ruby中也有多种解法,所以闭包的使用也有多种方法。
先看一个代码的例子:
Example1:
deffoo1 yield end
deffoo2(&b) b.callifb end
foo1{puts"foo1inblock"} foo2{puts"foo2inblock"} proc=Proc.new{puts"fooinproc"} foo1(&proc) foo2(&proc) lambda_proc=lambda{puts"fooinlambda"} foo1(&lambda_proc) foo2(&lambda_proc)
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短