Groovy入门教程:集合与闭包操作解析
2星 需积分: 25 140 浏览量
更新于2024-12-02
收藏 74KB PDF 举报
“groovy快速入门指南(中文)”
Groovy是一种动态、开源的编程语言,它与Java平台紧密集成,可以被用作脚本语言或用于构建完整的应用程序。本指南旨在帮助初学者快速掌握Groovy的基本概念和常用操作。
1、集合
Groovy中的集合包括List和Map,它们与Java的集合接口兼容。
(1)List
Groovy的List与Java的`java.util.List`接口类似。例如,创建一个包含不同类型的元素(整数、浮点数、字符串和日期)的列表:
```groovy
list = [1, 2, 'hello', new java.util.Date()]
assert list.size() == 4
assert list.get(2) == 'hello'
```
Groovy中的一切都是对象,因此即使数字也会被自动包装成Integer对象。
(2)Map
Groovy的Map与Java的`java.util.Map`接口类似,用于存储键值对。创建并访问Map的例子:
```groovy
map = ['name': 'James', 'location': 'London']
assert map.size() == 2
assert map.get('name') == 'James'
```
2、闭包(Closures)
闭包是Groovy的核心特性,类似于Java的匿名内部类,但更简洁。闭包可以有一个或多个参数,并且只包含一个方法。使用`{}`定义闭包,`|`前后的部分分别表示参数和执行代码。
```groovy
// 单参数闭包,使用it作为隐式参数
closure = { println("hello" + it) }
closure.call("world!")
// 多参数闭包
closure = { greeting, name -> println(greeting + name) }
closure.call("hello", "world!")
```
3、each
`each`方法用于遍历集合,将每个元素传递给闭包进行处理。
```groovy
[1, 2, 3].each { item | print "${item}-" } // 输出:1- 2- 3-
```
4、collect
`collect`方法用于遍历集合,应用闭包并返回新的集合,通常用于数据转换。
```groovy
value = [1, 2, 3].collect { it * 2 }
assert value == [2, 4, 6]
```
5、find
`find`方法根据闭包的返回值来查找集合中的第一个匹配项。
```groovy
value = [1, 2, 3, 4].find { it > 2 }
assert value == 3
```
6、findAll
`findAll`方法返回所有使闭包条件为真的元素组成的集合。
```groovy
value = [1, 2, 3, 4, 5].findAll { it % 2 == 0 }
assert value == [2, 4]
```
7、inject
`inject`方法将初始值与集合的每个元素结合,通过闭包进行累积计算。
```groovy
sum = [1, 2, 3, 4, 5].inject(0) { acc, num -> acc + num }
assert sum == 15
```
8、every
`every`检查集合中的所有元素是否都满足闭包条件。
```groovy
boolean allPositive = [1, 2, 3].every { it > 0 }
assert allPositive == true
```
9、any
`any`检查集合中是否存在至少一个元素满足闭包条件。
```groovy
boolean hasEven = [1, 3, 5].any { it % 2 == 0 }
assert hasEven == false
```
10、min/max
`min`和`max`方法用于找出集合中的最小值和最大值。
```groovy
minValue = [1, 2, 3].min()
assert minValue == 1
maxValue = [1, 2, 3].max()
assert maxValue == 3
```
11、join
`join`方法将集合元素连接成一个字符串,可以指定分隔符。
```groovy
str = [1, 2, 3].join(',')
assert str == '1,2,3'
```
12、yield
在Groovy的迭代器或生成器中,`yield`用于产出一个值。
这些是Groovy中关于集合操作和闭包的基础介绍。通过学习和实践这些基本概念,你可以快速上手Groovy编程,为使用Grails或其他Groovy框架打下坚实基础。
2009-11-13 上传
105 浏览量
2023-04-30 上传
2023-05-17 上传
除了上面的两种方式,还可以采用GroovyScriptEngine脚本引擎加载Groovy脚本的方式。编写Groovy_06.groovy和Groovy_07.groovy两个脚本,代码信息如下:
2024-11-12 上传
2023-05-20 上传
2023-06-05 上传
2023-04-20 上传
shuquan
- 粉丝: 2
- 资源: 43
最新资源
- Danaher_Lead_Management:作为TechFest 20-21 CorpComp挑战赛的一部分提交
- jax:适用于D的类似胡须的模板编译器
- BreakableToy:我的最终项目
- decodingthebrain:根据人脑活动的MEG记录预测视觉刺激
- 安迪苏-600299-全球动物营养与健康行业领军企业,蛋氨酸供需结构改善价格有望底部向上(1).rar
- cookies-zippys-used-autos
- DPLL:Python中命题逻辑的布尔可满足性
- Rezgo Open Source Booking Engine:完全集成的旅游和活动网站在线预订引擎-开源
- 基于物品的协同过滤算法(itemCF)的推荐系统.zip
- 第36课
- Dictionary-learning-Sparse-representation-for-defect-detection:稀疏编码的缺陷检测&http
- dltmatlab代码-Flash-Reflection-Image-Treatment:在这个小代码中,我通过将同一物体从不同角度拍摄的4张
- java_note:java笔记
- soc577-hw3-sp21:作业3的模板存储库
- multiserver:Minetest反向代理支持多个服务器和媒体多路复用
- 行业文档-设计装置-一种切纸装置.zip