Groovy中的inject
方法實際上做了什麼?我GOOGLE了它,並沒有找到確切的答案。任何人都可以用一個簡單的例子指定它的用途嗎什麼是Groovy中的注入方法?
35
A
回答
58
它將操作應用於集合並跟蹤中間值。以此示例爲例:[1, 2, 3, 4].inject(0, { sum, value -> sum + value })
。這表示使用0作爲初始值,並將添加操作按順序應用於中間結果和每個元素。該操作的每個應用程序都會生成新的中間結果。在這種情況下,閉包將數字相加,因此它會生成列表的總和。你可以把它想象這樣的:
<initial value> <operation> <element1> <operation> ... <elementn>
或者,在[1, 2, 3, 4].inject(0, { sum, value -> sum + value })
的情況:
0 + 1 + 2 + 3 + 4
爲了找到一個列表的產品,你可以使用[1, 2, 3, 4].inject(1, { product, value -> product * value})
。在這種情況下,1被用作初始值,因爲它是多重複制的標識值。
下面是分割多字字符串列表成詞的平面列表的示例:其有時用於描述這種操作是「減少」
strings = ["", "this", "is a", "test of inject!"]
words = strings.inject([], { list, value -> list + value.tokenize() })
assert words == ["this", "is", "a", "test", "of", "inject!"]
相關問題
- 1. 將常量導入groovy腳本的最佳方法是什麼?
- 2. groovy中「使用」關鍵字/方法的用法是什麼?
- 3. groovy中「。@」的用法是什麼?
- 4. 什麼是C++的積累或Groovy注入的Java等價物?
- 5. 什麼是反映實例方法的慣用Groovy方法?
- 6. 註釋中註釋方法的首選方式是什麼?
- 7. 什麼是將參數複製到Groovy類中的屬性的Groovy方法?
- 8. 在靜態方法中使用注入bean的正確方法是什麼?
- 9. 這個Groovy方法中的「不可序列化」是什麼?
- 10. 在groovy中迭代XML文件的正確方法是什麼?
- 11. 爲什麼junit運行注入方法?
- 12. 使用注入方法的Ruby代碼是做什麼的?
- 13. 什麼是註釋:openURL方法中的(id)註釋?
- 14. 什麼是注入分塊數據的好方法?
- 15. 依賴注入 - 什麼是最好的方法?
- 16. 將物業注入Sling模型的最佳方法是什麼?
- 17. MVC3 + Ninject:注入User IPrincipal的正確方法是什麼?
- 18. 防止SQL注入mysql的最佳方法是什麼
- 19. 爲什麼sql.rows Groovy方法很慢
- 20. 什麼是SQL注入?
- 21. 什麼是注入JPA
- 22. 什麼是SQL注入
- 23. 什麼是依賴注入?
- 24. 爲@Inject註釋提供注入的最簡單方法是什麼?
- 25. Groovy語法 - 什麼是'**'xml method-like-thingy?
- 26. 在EntityRepository中注入EventDispatcher的最佳方式是什麼?
- 27. 爲什麼我的Inject方法不向流中注入數據?
- 28. 爲什麼Groovy閉包不能訪問注入的類成員?
- 29. 方法中的@Value註釋是做什麼的?
- 30. Groovy中的「屬性」是什麼?
你可以說在這個例子中,標記化是做什麼的? – 2011-03-06 07:52:17
Tokenize只是將空白字符串分開。它與String.split相同,除了它返回一個列表而不是一個數組。 – ataylor 2011-03-06 20:36:59
方法名稱的一個非常奇怪的選擇 - 我想知道爲什麼它沒有被命名爲reduce或fold? – 2014-09-17 15:59:09