Gradle Groovy 脚本语言基础版
task hello{
doLast{
println'hello world!'
}
}
task printStringTask <<{
def str1 = "双引号"
def str2 = '单引号'
println"单引号定义的字符串类型:"+str2.getClass().name
println"双引号定义的字符串类型:"+str1.getClass().name
}
task printStringVar <<{
def name="张三"
def old = "11"
println'单引号的变量计算:$name'//一个变量的时候可以省略花括号
println"双引号的变量计算:$name${old}"
}
task printList <<{
def numList = [1,3,43,22]
println numList.getClass().name
println numList[0]//访问第一个元素
println numList[-1]//访问最后一个元素
println numList[-2]//访问倒数第二个元素
println numList[2..3]//访问第三个到第四个元素
println numList[-1..1]//访问从最后一个到第二个元素
//1
//22
//43
//[43, 22]
//[22, 43, 3]
numList.each{
println it //正在迭代的元素
}
}
task printlnMap <<{
def map1 = ['width':1024, 'height':2048]
println map1.getClass().name
println map1.height
println map1['width']
map1.each{
println "key: ${it.key} value: ${it.value}"
}
}
task invokeMethod <<{
sum(1,2)
sum 1,2
}
def sum(int a, int b){
println a+b
}
task printlnMethodReturn{
def add1 = maxNum 1,2
def add2 = maxNum 5,3
println "add1: $add1 add2: $add2"
}
def maxNum(int a, int b){
if(a > b){
a
}else {
b
}
}
task printlnJavaBean {
Personal person = new Personal()
println person.name
person.name = "张山"
println person.name
println person.age //可以用getXXX最为属性
}
class Personal{
String name
int getAge(){
11
}
}
task helloClosure{
/*customEach {
println it
}*/
eachMap {k,v ->
println "key: ${k} value: $v"
}
}
def eachMap(closure){
def map1 = ['姓名':"张山",'年龄':"12"]
map1.each {
closure(it.key,it.value)
}
}
def customEach(closure){
for(int i in 1..10){
closure(i)
}
}
task helloDelegate << {
new Delegate().test{
println "thisObject:${thisObject.getClass()}"
println "owner:${owner.getClass()}"
println "delegate:${delegate.getClass()}"
method1()
it.method1()
}
}
def method1(){
println "Delegate this: ${this.getClass()} in Delegate"
println "method in Delegate"
}
class Delegate{
def method1(){
println "Delegate this: ${this.getClass()} in Delegate"
println "method in Delegate"
}
def test(Closure<Delegate> closure){
closure(this)
}
}
task configClosure <<{
person{
personName = "张三"
personAge = 11
dumpPerson()
}
}
class Person{
String personName
int personAge
def dumpPerson(){
println "name: $personName age: $personAge"
}
}
def person(Closure<Person> closure){
Person person = new Person()
closure.delegate = person
closure.setResolveStrategy(Closure.DELEGATE_FIRST)
closure(person)
}