美文网首页
看懂Gradle脚本(4)- Groovy语法之运算符重载

看懂Gradle脚本(4)- Groovy语法之运算符重载

作者: zheting | 来源:发表于2018-01-01 12:59 被阅读59次
    task myTask {  
        doLast {      
            println 'hello world!'      
        }      
    }  
    

    等价于

    task myTask << {  
        println 'hello world!'   
    } 
    
    • AST转换
      下面是经过GradleAST转换之后的脚本:
    task('myTask') << {  
        println 'hello world!'   
    }  
    
    • 运算符重载
      理解上面这段脚本的关键点是理解Groovy的运算符重载,groovy中每一个可重载的运算符都跟一个普通的方法名相对应,并且调用运算符方法时,点号可以省略。上面的<<(左移)运算符,在Groovy眼里,其实就是leftShift方法:
    task('myTask').leftShift({  
        println 'hello world!'   
    })
    

    leftShift的方法签名:

    Task leftShift(Closure action) 
    
    • 结论
      Task定义脚本里的<<运算符,实际上是Task的leftShift方法。

    • 举一反三
      <<运算符看起来像是往左边的操作数中放入某种东西,这也是为什么Gradle会选择这个运算符来给Task添加一个Action的原因。类似,Groovy给List添加了<<运算符支持,如下所示:

    def list = []  
    list << 1  
    list << 2  
    println list  
    

    打印出:[1, 2]

    相关文章

      网友评论

          本文标题:看懂Gradle脚本(4)- Groovy语法之运算符重载

          本文链接:https://www.haomeiwen.com/subject/kvhtnxtx.html