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)
热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短