定义
Groovy是动态的、面向对象的运行在JVM上的脚本语言。
动态语言的特点是能够在运行时扩展程序,包括修改类型、行为和对象结构。
就拿Java来说,类定义好了,如果想要给类扩展功能常见的有两种方式:
1.修改源代码;
2.利用设计模式新建类,比如代理模式;
不管哪种方式都不方便,而动态语言可以直接为类型扩展方法或者属性,这样会增加语言灵活性提提高开发效率。
环境配置
我得环境是mac+idea2019,其他环境是类似的,我第一次配置idea环境的时候就遇到了坑,这也是我写这个专栏的原因。
1.下载Groovy
2.配置环境变量
我这里将解压后的文件夹复制到了这里,这里作为Groovy的Home目录。
/Users/mabo/ProgramFiles/groovy-2.5.7
配置环境变量
vim ~/.bash_profile
## 在.bash_profile文件中添加如下内容
export GROOVY_HOME=/Users/mabo/ProgramFiles/groovy-2.5.7
export PATH=$PATH:$GROOVY_HOME/bin
## 添加好后保存,更新配置文件
source ~/.bash_profile
## 测试
groovy -v
Groovy Version: 2.5.7 JVM: 1.8.0_181 Vendor: Oracle Corporation OS: Mac OS X
这样就配置好了Groovy环境。
当然mac也可以用brew安装groovy,不过brew命令的安装方式在终端下运行测试虽然能成功,但是最后无法配置到idea中,所以还是独立配置比较好。
新建Groovy项目
这里演示一下在idea2019版中新建一个Groovy项目的过程。
- 新建项目
- 选择Groovy项目
如果Groovy library中没有Groovy,点击Greate手动选择在环境变量中配置的GROOVY_HOME目录即可。
-
设置项目名称,Module名称
我这里Project name是idea-project,Module name是hello-groovy -
新建package
我这里的package名称是com.berry -
新建Groovy Class
我这里起名叫hello
6.第一个Groovy程序
package com.berry
class hello {
public static void main(String[] args) {
for(int i = 0;i<5;i++){
System.out.println("Hello World");
}
}
}
运行结果:
Hello World
Hello World
Hello World
这不是java代码吗?是的,这是java代码,但这也是Groovy代码,因为几乎所有java代码都可以作为Groovy代码运行。这当然是为了兼容java,这一点很Scala也类似,Scala是运行在JVM之上的函数式编程语言,在Scala中也可以写一部java代码。那么如何改为Groovy风格的代码呢?
- Groovy可以不适用分号“;”,可以去掉类和方法定义,结果是这样:
package com.berry
for(int i = 0;i<3;i++){
System.out.println("Hello World");
}
运行结果无误,依然是3个"Hello World"。
- 将循环语句以及打印方法改为 Groovy风格:
package com.berry
for( i in 0..2){ println "Hello World" }
运行结果无误,依然是3个"Hello World"。
- 简化为另一种for循环写法:
package com.berry
0.upto(2){ println "Hello World" }
运行结果无误。
可以看到,用java很多行的代码,用Groovy只需要一行就够了!
至此,完成了Groovy的Hello World程序。
参考书籍:《Groovy程序设计》