[分享] Ruby 的 Closure (block, Proc, lambda)

作者: Neisseria (Neisseria)   2018-09-07 16:27:48
任意門 (英文)
http://bit.ly/2MSPqfr (AppSignal 文章)
加碼某板友的文章 (中文)
https://tonytonyjan.net/2011/08/12/ruby-block-proc-lambda/
block, Proc, lambda 三者都是用來寫函數式程式的
這三者的異同應該算是 Ruby 重要的月經題
先來個懶人包:
1. block 本質上是 Proc,但不能存在變數中
2. Proc 和 lambda 皆可存在變數中,故可重覆使用
3. lambda 會檢查變數數量 (arity),但 Proc 不會
4. 在方法中呼叫 lambda,若 lambda 有 return,控制權回原方法
在方法中呼叫 Proc,若 Proc 有 return,會跳出該方法
還是建議點進去看過一遍原文章,不要死記懶人包的結論
作者: b0w1d (zeta)   2018-09-07 16:54:00
感謝分享
作者: davidyun ([ 慢! ])   2018-09-07 23:42:00
作者: tonytonyjan (南洋大兜蟲)   2018-09-11 22:13:00

Links booklink

Contact Us: admin [ a t ] ucptt.com