大家常常搞混的三兄弟,我们一起来了解他们!
Block 是程序码区块,不能单独存活,要接在方法(method)後面才能活!
写法有2种,{ } 和 do…end,2种写法,Block 在 Ruby 算是满特殊的存在。(Block不是物件,前面有提到!)
2种写法的差异是 { } 的优先顺序大於 do…end。
既然Block不是物件,有时不好运用,於是又生出来另外2兄弟 Proc 和 Lambda,这2兄弟可以将 Block 物件化。
主要差异简单来说
1.是否会检查参数,Proc 比较弹性,Lambda 比较严格
2.不同return的效果,Proc 会在作用域( Scope )执行,Lambda 会完整执行
参考资料
1.https://5xruby.tw/posts/discover-ruby-block
2.https://sharefunyeh.gitbooks.io/webdev/content/articles/ruby_block_proc_lambda.html
3.https://chienhao.tw/Metaprogramming-Ch4-Part3
<<: Day 12 : 案例分享(4.1) 签核与费用模组 - 费用申请流程
大家好,2020 铁人赛来到了最後一天。我自己是没想过竟然可以连写两年。 最後一天当然要写心得文,这...
在上个世代如流星般横空出世的 Wii 由於本身机能的不足、加之智慧型手机的夹攻下、很快地就陷入了疲态...
CSRF(Cross-site request forgery)中⽂翻译成「跨站请求伪造」。通常 C...
Keyword:Coroutine Leak,Structured Concurrency Memo...
本系列文章同步发布於笔者网站 上一篇讲述了 OVN Plug-in 在 OpenStack 中的参考...