咱们将介绍 groovy 语言的基础知识, 使用 groovy 须要知道的两件事:代码外观和断言。 我是看着Groovy in Action的时候,写这个博客的。因此不少东西是从里面复制出来的,但愿你们去看原书。 java
1.注释 shell
和java同样,Groovy使用//作单行注释,/* */作区间注释。 编码
// 单行注释 spa
/*
多行注释
*/ .net
可是Groovy有个特别的注释: #!/usr/bin/groovy ,该注释只能放在第一行,经过这种方式 Unix shell 能定位 groovy 的启动脚本而且运行这些脚本。 code
javaDoc注释和GroovyDoc注释也是等价的,这里就不作介绍了。 对象
2.Groovy和java语法的比较。 ci
之前的Groovy不支持 for(init;test;inc) 这种java经典循环,可是若是你下载最新的Groovy2.x它已经支持了,因此Groovy和java的兼容性已经很好了。固然,Groovy做为一个脚本语言,仍是有特殊的区别,好比 ==运算符。 若是不是强制比较对象地址,java应该使用equals方法。可是Groovy的==运算符,会自动调用equals方法,也避免了小白总是乱用==符号。(咱们公司的实习生总是用==,形成各类问题,我已经纠正了不少次了)。也就是说 Groovy的==符号,至关于equals. get
3.Groovy简洁的代码。 博客
Groovy 容许忽略一些在 java 中必须的语法元素,忽略这些元素的结果是代码更简短、更少冗余和更清晰的表述。 例如, 将一个 String 对象编码为一个 URL 对象, 比较它们的 java 和 groovy 的代码:
Java:
java.net.URLEncoder.encode("a b");
Groovy:
URLEncoder.encode 'a b'
groovy 的代码不但更简短, 并且以尽量简单的方法表述了咱们的目标。 忽略了包的前缀,圆括号和分号,代码量减小到最小。
Groovy 自动导入如下包和类:
groovy.lang.*
groovy.util.*
java.lang.*
java.util.*
java.net.*
java.io.*
java.math.BigInteger
java.math.BigDecimal
因此在使用它们时,你能够不用去import这些java class了。
Groovy的Class声明。
class MyClass{ String title printTitile() { print title; } }
Groovy的修饰符默认都是public,你能够省略去写getter,setter的麻烦,直接引用,方法的声明也很简单,是否是比java的类省事多了。