Groovy开始

之前看了《Java程序员修炼之道》,第三部分JVM上的多语言编程里面讲到JVM上面的一些脚本语言,有Groovy,Scala,Clojure,没有等。于是这两天学了一下Groovy,发现还真是方便,最明显的(当然我是处在比较初级阶段的认识)他的闭包Closure。

平时在用Java编程的时候,写着写着总是有点烦,一个很简单的方法都要写一堆代码,其实具体逻辑就一行,想着用闭包多好,那么Groovy完全就可以用得上。

1. Groovy的安装

推荐使用GVM(the Groovy enVironment Manager)进行安装和版本管理,进行版本的随意切换,GVM的概念可以说是来自RVM,它不仅可以管理Groovy,还可以管理crash, gaiden, glide, gradle, grails, griffon

2. Groovy的编程

2.1 Hello World

Groovy可以不像Java那样每个class文件必须有一个类,它就像很多脚本一样,一行代码:

print "Hello World"

保存为hw.groovy,

groovy hw.groovy

解决!而在Java里,则要这么麻烦

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

保存hw.java,

javac hw.java
java hw.class

这一点Groovy还是挺方便的了。

另外,Groovy还提供了GroovyConsole,一个简单的IDE,也是挺方便的。

2.2 闭包

对于闭包,官方的解释是:

What is a Closure?
A Groovy Closure is like a "code block" or a method pointer. It is a
piece of code that is defined and then executed at a later point. It has some special properties like implicit variables, support for currying and support for free variables (which we'll see later on). We'll ignore the nitty gritty details for now (see the formal definition if you want those) and look at some simple examples.

一个最简单的例子:

def clos = { println "hello!"}
println "Executing the Closure:"
clos()

更多的说明在官网文档Closures还有。

Groovy里很多的类都有专门传闭包方法,比如List:

def list = ['c', 'n', 'h', 'a', 'l', 'o']
def newList = []
        
def clos = {
    it.toUpperCase()
}
list.collect(newList, clos)
println newList

// 输出:[C, N, H, A, L, O]
        

2.3 一个具体的闭包例子

代码竟然搞丢了。。稍后补上。

3. 结语

Groovy有很多很亮的特性,使得它可以成为和Java共用的语言,这也是我为什么要选择Groovy作为JVM脚本语言入门的最大的理由(最为对比,另一个是Scala),他的语法和Java很像,本来用Java实现的逻辑可以用Groovy更简短的语句实现。Groovy和Java之间的相互调用也是很方便的。

希望在自己接触的项目中可以很快用上Groovy。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 由于项目需要用到 Groovy 语言,这两天对其进行了粗略的学习,本文是对学习做的一个简单总结,主要内容参考...
    简单的土豆阅读 189,226评论 12 201
  • Groovy是一门基于JVM的动态语言,很多语法和Java类似。大部分Java代码也同时是合法的Groovy代码。...
    乐百川阅读 3,644评论 0 15
  • Groovy :是一种动态语言。 1:这种语言比较有特点,它和 Java 一样,也运行于 Java 虚拟机中。简单...
    PeytonWu阅读 1,613评论 0 1
  • 什么是 Groovy? 简言之,Groovy是一种基于JVM(Java虚拟机)的敏捷动态开发语言。它是一种成熟的面...
    北纬26阅读 4,175评论 0 14
  • 下笔却大脑空白,不知写些什么,从何说起。满脑子的事情,理不清,断不了,就如心里长满了荒草,我拿着镰刀这砍砍,那砍砍...
    1cc3a6bd86d4阅读 168评论 0 0