Groovy 时运行在 jvm 上的面向对象的语言,可以用作纯粹的脚本。使用改语言不必编写过多的代码,同时具有闭包和动态语言的特性。
Groovy 与 Java 语言的比较
- 完全兼容 Java 语法
- 分号可选
- 类和方法默认是 public 的
- 编译器给属性自动添加 getter/setter方法
- 属性可以直接用点号获取
- 最后一个表达式的值会作为返回值
- == 等同于equals(),不会有 NullPointerExceptons
高效的 Groovy 特性
//1. 可选的类型定义,通过值推断出类型
def version = 1
//2. assert语句
aseert version == 2
//3. 括号是可选的
println version
//4. 字符串
def s1 = 'xzy'
def s2 = "gradle version is ${version}"
def s3 = ''' my
name is
xzy ...'''
//5. 集合 api
//list
def buildTools = ['ant','maven']
buildTools << 'gradle'
assert buildTools.getClass() == ArrayList
assert buildTools.szie() == 3
//map
def buildYears = ['ant':2000,'maven':2004]
buildYears.gradle = 2009
println buildYears.ant
println buildYears['gradle']
//6. 闭包
def c1 = {
v ->
println v
}
def c2 = {
println 'hello'
}
def method1(Closure closure){
closure('param')
}
def method2(Closure closure){
closure()
}
method1 c1
method2 c2