Groovy基础

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)
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值