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. 什么是C++的积累或Groovy注入的Java等价物?
- 4. 什么是反映实例方法的惯用Groovy方法?
- 5. 注释中注释方法的首选方式是什么?
- 6. 这个Groovy方法中的“不可序列化”是什么?
- 7. 在groovy中迭代XML文件的正确方法是什么?
- 8. 为什么junit运行注入方法?
- 9. 使用注入方法的Ruby代码是做什么的?
- 10. 将物业注入Sling模型的最佳方法是什么?
- 11. 防止SQL注入mysql的最佳方法是什么
- 12. 什么是注入分块数据的好方法?
- 13. 为什么sql.rows Groovy方法很慢
- 14. 什么是依赖注入?
- 15. 什么是SQL注入?
- 16. 什么是SQL注入
- 17. Groovy语法 - 什么是'**'xml method-like-thingy?
- 18. 为什么Groovy闭包不能访问注入的类成员?
- 19. 什么是检查用户输入并防止mysql注入的方法?
- 20. Groovy中`ObjectMapper mapper = []`的含义是什么?
- 21. 在控制器中注入属性值的最佳方法是什么?
- 22. C++:什么是从注入DLL中读取内存的好方法?
- 23. 在角2中实现注销的正确方法是什么?
- 24. 在表单中标注事物的正确方法是什么?
- 25. Perl中多行注释的常见解决方法是什么?
- 26. 什么是最好的方式来判断一个方法是否是策略注入中的一个属性?
- 27. 角度注入语法背后的想法是什么?
- 28. 注入SVG的目的是什么?
- 29. 为什么Groovy中的方法解析顺序不规范?
- 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