gradle 知识(2) -- groovy语法

gradle 知识(2) – groovy语法


参考博客
http://www.jianshu.com/p/e8dec95c4326
http://ifeve.com/groovy-syntax/


此处输入图片的描述

Groovy 是 Apache 旗下的一门基于 JVM 平台的动态/敏捷编程语言,在语言的设计上它吸纳了 Python、Ruby 和 Smalltalk 语言的优秀特性,语法非常简练和优美,开发效率也非常高,并且,Groovy 可以与 Java 语言无缝对接,在写 Groovy 的时候如果忘记了语法可以直接按Java的语法继续写,也可以在 Java 中调用 Groovy 脚本,都可以很好的工作,这有效的降低了 Java 开发者学习 Groovy 的成本。Groovy 也并不会替代 Java,而是相辅相成、互补的关系。

gradle为什么选择groovy?

动态语言vs静态语言 http://blog.csdn.net/suchang1127/article/details/49299527

我们认为在脚本构建时,一个内部的 DSL(基于一个动态语言) 相对于 XML 的优势是巨大的.有这么多的动态语言, 为什么选择 Groovy? 答案在于 Gradle 的运行环境. 虽然 Gradle 以一个通用构建工具为核心, 但是它的重点是Java项目. 在这样的项目中, 显然团队每个成员都对Java 非常熟悉. 我们认为构建应尽可能对所有团队成员都是透明的,所以选择了 Groovy.你可能会说,为什么不直接使用 Java作为构建脚本的语言.我们认为这是一个很有用的问题.对于你的团队,它要有最高的透明度和最低的学习曲线, 也就是说容易掌握. 但由于Java的限制,这样的构建语言不会那么完美和强大. 而像 Python,Groovy 或 Ruby语言用来作为构建语言会更好. 我们选择了 Groovy 是因为它给 Java开发人员提供了迄今为止最大的透明度. 其基本的符号和类型与 Java 是一样的,其封装结构和许多其他的地方也是如此. Groovy 在这基础上提供了更多的功能, 而且与 java 有共同的基础.

1.字符串

Groovy在结尾可以没有分号

def single = 'c'
def singletwo = 'c${single}'
def mul = "c"
def multwo = "c${single}"
println single
println singletwo
println mul
println multwo
//output
c
c${single}  #单引号是纯粹的字符串常量
c
cc

字符串可以使用单引号和双引号,(在java中单引号只能定义一个字符),不同之处在于单引号标记的是纯粹的字符串常量,但是双引号可以对字符串的表达式做运算

2.函数方法

System.out.println("Hello groovy")
System.out.println "Hello groovy"
println("Hello groovy")
println "Hello groovy"

上面4个方法打印结果都是相同的,在groovy中函数的参数可以写到后面不适用括号,多个参数用逗号分开

int method(String agr){
    return 1
}
int method(Object o){
    return 2
}

Object o = "obejct"
int result = method(o)

println "${result} --> (2 , java)(1,groovy)"
//output
1 --> (2 , java)(1,groovy)

在java中result是2,在groovy中结果是1.原因在于,Java 使用静态数据类型,o 被声明为 Object 对象,而 Groovy 会在运行时实际调用方法时进行选择。因为调用的是 String 类型的对象,所以自然调用 String 版本的方法。

3.闭包 closure

闭包是groovy很重要的一个特性,是DSL的基础。闭包就是一个代码块

def eachLine(lines , closure){
        for(String line: lines){
                closure line
        }
}
eachLine( 'a'..'z', {print "${it} "})

eachLine使我们定义的方法,接收两个参数,第二个参数是一个闭包,’a’..’z’可以理解为全部的小写字母集合,我们在调用eachLine方法时传入的闭包就是打印传入的参数,it是第一个参数

4.集合

def list = [1,"cat",2,3,4,5,"111","heloo"]
list.each{ println it}  //打印集合
println("\n\n")         
list.sort()             //排序
list.each{println it}   //打印集合

总结

//fun 打印文本的内容
def path = "/home/study/gradle/groovy/READ.txt"
//很简单吧
new File(path).eachLine('UTF-8'){
        println it
}

看了好多关于groovy的博客,各种语法和groovy的api,使用起来比java更加简练,这也是动态语言的优势,这里主要了解一下groovy的闭包就可以了,因为是gradle的基础。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gradle-5.0.0-all是Gradle构建工具的一个版本。Gradle是一个现代化的项目自动化构建工具,用于构建、测试和部署软件项目。它基于一种叫做Groovy的编程语言,但也支持使用Java或Kotlin来编写构建脚本。 gradle-5.0.0-all中的“5.0.0”代表这个版本的具体号码,每个版本都会带来新的功能和改进。版本号的第一部分“5”表示主要版本,意味着这个版本可能有较大的变化和新功能。版本号的第二部分“0”表示次要版本,表示此次发布主要是为了修复问题和改进性能。版本号的第三部分“0”表示补丁版本,指的是一些小的修复和问题修正。 gradle-5.0.0-all是一个包含Gradle完整安装包的分发版本,它包括了Gradle运行时所需的所有依赖库和插件。使用gradle-5.0.0-all,你可以在不需要互联网连接的情况下离线构建项目,因为它已经包含了所有的依赖项。这对于在没有网络连接的情况下工作或保证构建的稳定性非常有用。 gradle-5.0.0-all还包括了许多新的功能和改进,比如增强的构建缓存、性能提升、增强的构建脚本语法支持等。这个版本的Gradle还引入了一种新的插件开发模型,使得开发者可以更轻松地编写和管理插件。 总而言之,gradle-5.0.0-all是一个Gradle的特定版本,它包含了所有的依赖项和插件,并引入了一些新的功能和改进。使用这个版本,你可以方便地构建和管理你的软件项目。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值