之前看了《Java程序員修煉之道》递礼,第三部分JVM上的多語言編程里面講到JVM上面的一些腳本語言存谎,有Groovy啡专,Scala硫戈,Clojure,沒有等埃元。于是這兩天學了一下Groovy氢哮,發(fā)現(xiàn)還真是方便葛圃,最明顯的(當然我是處在比較初級階段的認識)他的閉包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()
更多的說明在官網(wǎng)文檔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實現(xiàn)的邏輯可以用Groovy更簡短的語句實現(xiàn)窜护。Groovy和Java之間的相互調用也是很方便的效斑。
希望在自己接觸的項目中可以很快用上Groovy。