1
A
回答
1
一個我這樣在Ruby中使用lambda表達式的原因是,當我需要一個封蓋從周圍的範圍,這對於例如在小的腳本我有時會發現比周圍路過的東西作爲參數,更加方便捕捉的東西。其他人(ab)使用頂級實例變量,但我不喜歡那麼多。根據要求
更新:這裏有一個小例子:
shift_timestamp = -> ts do
t = Time.parse(ts.gsub(',','.')) + options[:time]
"#{t.strftime("%H:%M:%S")},#{t.usec.to_s[0..2]}"
end
這是一個小工具,我寫了移字幕。這是一個簡短的腳本,寫這種方式讓我可以關上options
和訪問它的拉姆達內而無需將其傳遞正如我說的,什麼時髦,但對於小腳本我有時喜歡做這個(其中「本」解析選項,編寫1或2個使用這些選項的lambda表達式,稍後使用lambdas而不是方法)。
2
lambda表達式的一個很常見的用法是懶加載(和傳遞參數)ActiveRecord的關係,範圍:
class Post < ActiveRecord::Base
scope :recent, lambda { |today| where('published_at >= ?', today) }
end
(從here)
雖然在一般,這些關閉的方法是一種對數據集合進行一次操作的簡明方式,或將代碼存儲爲數據以傳遞給其他功能。
+0
[「使用一個類的方法是接受範圍參數的首選方式。」(http://guides.rubyonrails.org/active_record_querying.html#passing-in-arguments),因此這可能不是最好的例。 –
相關問題
- 1. 什麼時候應該使用AWS,什麼時候不使用
- 2. 什麼時候應該使用sed,什麼時候應該使用awk
- 3. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
- 4. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 5. 什麼時候應該使用async/await,什麼時候不用?
- 6. 什麼時候應該實時使用方法重載項目?
- 7. 什麼時候應該使用「performBlock」方法?
- 8. Python:什麼時候應該使用子類而不是方法?
- 9. 什麼時候應該使用Moq的.As方法?
- 10. 什麼時候應該使用靜態方法?
- 11. 什麼時候應該使用方法來返回值?
- 12. 什麼時候應該使用HtmlHelper擴展方法?
- 13. 什麼時候應該使用公共靜態方法
- 14. 什麼時候應該使用EntityManger分離方法?
- 15. 什麼時候應該使用datagrid,何時應該使用datagridview?
- 16. 什麼時候應該使用$(object),何時應該使用$ object?
- 17. 什麼時候應該使用FSharpFunc.Adapt?
- 18. 什麼時候應該使用_aligned_malloc()?
- 19. 什麼時候應該使用`use`?
- 20. 什麼時候應該使用$ rootScope?
- 21. 什麼時候應該使用$(document).ready?
- 22. 什麼時候應該使用html5 sessionStorage?
- 23. 什麼時候應該使用OWIN Katana?
- 24. 什麼時候應該使用流?
- 25. 什麼時候應該使用Promises?
- 26. 什麼時候應該使用setScriptTimeout?
- 27. 什麼時候應該使用助手?
- 28. 什麼時候應該使用Datomic?
- 29. 我什麼時候應該使用javax.swing.SwingUtilities.invokeLater()?
- 30. 什麼時候應該使用XS?
你能給的地方,這將是有益的短的例子嗎?只是有興趣... – slhck