Groovy是基于JVM虚拟机的一种动态语言,它的语法和Java非常的相似,Groovy完全兼容Java,又在此基础上增加了很多动态类型和灵活的特性,比如支持闭包,支持DSL,是一门非常灵活的动态脚本语言。换句话说就是让你像写Java一样编写配置脚本。
每个gradle的build脚本文件都是一个Groovy脚本文件,你可以在里面写任何符合Groovy语法的代码,比如定义类、声明函数、定义变量等。而Groovy又完全兼容Java,这就意味着你可以在build脚本文件里写任何的Java代码。
1、字符串
在Groovy中,分号不是必需的。
在Groovy中,单引号和双引号都可以定义一个字符串常量。区别:单引号 - 定义的是一个纯粹的字符串常量;双引号 - 可以对字符串里面的表达式做运算,比如:
task printlnStrVar {
def name = "json"
doLast{
print '单引号变量的计算结果:${name}'
print "单引号变量的计算结果:${name}"
}
}
-> 运行结果:
单引号变量的计算结果:${name}
单引号变量的计算结果:json
即单引号字符串没有运算能力。
2、集合
Groovy完全兼容Java的集合,并进行了扩展。常见的集合有List、Set、Map和Queue。
2.1.1、List
定义List:def numList = [1,2,3,4,5,6],numList是一个ArrayList类型;
元素访问 - 直接通过索引的方式访问List中的元素。
numList[1] 访问第二个元素
numList[-1] 访问最后一个
numList[-2] 访问倒数第二个
numList[1..3] 访问第二个到第四个元素
元素遍历 - each函数,接受一个闭包作为参数,可以访问集合中每一个元素;
task eachList {
doLast {
def numList = [1, 2, 3, 4, 5]
numList.each {
println it
}
}
}
2.1.2、Map
Map和List类似,只不过它的值是一个K:V