以前,山风小子前辈(不知道这样写山风小子高不高兴)写过了Groovy与Java之间的比较了,但是,算作充实博客也好,翻译书也好,我还是要写。
大多数的情况下,我们看到的Groovy代码与Java很相似,但是这不是说有的情况。这个有时候会误导有些人产生错误的观念:认为Groovy的语法是Java语法的子集。尽管有很多的相似性,没有哪一种语言是另一种语言的子集的。例如,Groovy不支持java里面的for(init;test;inc)循环(似乎,新版本可以了),就像在下文你会看到的,在语言的语义层面也会存在细小的不同的。
除了这些细小的不同,绝大多数是相同的:
- 一般的包的命名机制
- 声明(包括package声明和import声明)
- 类和方法的定义(当然,这要排除内部类)
- 控制结构(貌似要排除经典的for循环)
- 操作符,表达式以及赋值
- 异常的处理
- 对象的实例化,应用和消除引用,以及调用方法
一下使相对于Java,Groovy新加入的语法:
- 通过new表达式和操作符使得访问java的对象更容易
- 允许多种多样的声明对象的方式
- 提供了新的控制结构,允许高级的娄成控制
- 引入了新的数据类型
- 最重要的一点,在Groovy中,一切都是对象(Java中就不是了,Java中有数值类型)
总而言之,Groovy是很像Java的,毕竟Groovy是Java 的王储嘛,作为王储的Groovy,不仅仅要继承Java的优点,还要有自己的特别之处,这些特别之处会不会使Groovy继承王国,并管理好王国,我们很期待阿!