Work Better Than Yesterday!
官网上说groovy是一个多面性(multi-faceted)的java平台语言,它可以像jdk一样安装,也可以当做一个项目在maven那里进行依赖。对于本质还需要再认真理解一下。
我觉得Groovy就是一个脚本版的java,在哪里用到,我目前了解的就是gradle,还有以前在TM实习的时候,那里的推荐算法会用到。Groovy引入了闭包和元编程等出色功能,也是比较难理解的。
通过eclipse4.4安装plugin
http://dist.springsource.org/release/GRECLIPSE/e4.4/
本地安装
或者像maven一样下载bin包,然后配置环境变量就可以了。然后创建一个Test.groovy文件,直接用groovy命令就能运行了。
它会默认import一下这些包,所以可以直接使用这些包里面的类了:
java.io.*
java.lang.*
java.math.BigDecimal
java.math.BigInteger
java.net.*
java.util.*
groovy.lang.*
groovy.util.*
它还是多方法的(方法名相同),因为它是脚本语言的特性,方法在runtime的时候call,会根据实际的参数类型去调用不同的方法。
不能使用{}大括号来声明数组了,因为那是闭包,所以使用中括号[]。
注释和java一样,只不过多了一个Shebang line的注释,其实和shell的第一行一样。
出了java的那些关键字,还包括const def goto
正常的标识符规则应该和java一样,只不过在点以后可以使用关键字作为标识符,例如:
foo.as
foo.assert
foo.break
foo.case
foo.catch
然而groovy还有引号标识符(Quoted identifiers),这个就和php啊,js一样,其实有点像map里面的key是字符串,我觉得本质应该一样吧:
三个单引号或者双引号的字符串可以是多行的,如下,String#stripIndent()方法就像java里面的trim一样效果。
定义多行变量,使用三个引号:
只有使用双引号的字符串才能使用占位符插值,占位符还能够是表达式,这个是GString,例如:
关于字符串在插值的时候会有闭包的表达式,还不懂,看了闭包以后在回头看,4.4.2。
GString作为参数传递的时候会隐式调用toString()方法。