美文网首页
看懂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