節錄
Procs vs Block
什麼時候用blocks而不用Procs呢?1、Block:方法把一個對象拆分成很多片段,並且你希望你的用戶可以與這些片段做一些交互。2、Block:希望自動運行多個語句,如數據庫遷移(database migration)。3、Proc:希望多次復用一段代碼。4、Proc:方法有一個或多個回調方法(callbacks)。
lambdas vs Procs
Ruby中的Procs是代碼片段(code snippets),不是方法。因此,Proc的return就是整個方法的return。但lambdas就像是單獨的methods(只不過是匿名的),所以它要檢查參數個數,且不會覆蓋整個方法的返回。因此,最好把lambdas當作另一種methods的寫法,一種匿名的方式。
square不是Proc,而是Method。Method與lambda用法相同,因為它們的概念是一樣的。不同的是Method是有名字的method,而lambda是匿名method
沒有留言:
張貼留言