jini-jakarta99-blogging
[ 首頁 | 索引 | 登入 | 註冊 ]

Groovy 1 语法特性

ray_linn 所撰寫。最後修改者是 ray_linn 在 887 天之前。 已瀏覽 821 次。
[編輯] [附加]

Groovy <1> 语言特性

前言

Groovy 是基于 JRE 的脚本语言( Script ),是由James Strachan 和 Bob McWhirter 这两位天才发明的,(JSR 241 2004 年 3 月)。

和Perl,Python等等Script的设计初衷一样,作者希望Groovy能快速简洁地完成一些工作:如访问数据库以编写报告,编写单元测试用例(Unit Test Case),快速实现产品原型(ProtoType) 等等。

同时为了降低学习曲线,Groovy 的语法和Java 近似,并吸收了 Ruby,Python 和SmallTalk 的一些特点,因此 Groovy 在某些场合可以扮演一种 “咖啡伴侣”的角色。

那么Groovy 和 Java 相比,有什么变化呢? Groovy 和大部分Scripts一样:

  1. 不用编译,通过解释运行。
  2. 允许动态类型。
  3. 合成结构容易。

因此,Groovy 是一种特别容易学习和使用的语言.

我们先借用IBM Groovy教程中的例子,下面的代码利用了Freemarker模板引擎来创建一个Template对象,然后将内容打印到标准输出。例(1)是Java代码,例(2)是Groovy代码。可以看到二者非常的类似。

//简单的 TemplateReader Java 类
import java.io.File;
import java.io.IOException;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class TemplateReader {  
      public static void main(String[] args){
           try{
               Configuration cfg = Configuration.getDefaultConfiguration();
               cfg.setDirectoryForTemplateLoading(new File("C:/dev/projects/http-tester/src/conf"));
               Template temp = cfg.getTemplate("vendor-request.tmpl");
               System.out.println(temp.toString());
           }
           catch(IOException e){
               e.printStackTrace();
           }
     }
}

和例2 中的 Groovy 作为对比.

//用 Groovy 编写的更简单的 TemplateReader
//语法目前基于Groovy 1.0-JSR3
import freemarker.template.Configuration as tconf
import java.io.File
cfg = tconf.getDefaultConfiguration()
cfg.setDirectoryForTemplateLoading( new File("C:/dev/projects/http-tester/src/conf"))  
temp = cfg.getTemplate("vendor-request.tmpl")
println temp.toString()

Groovy显然精简得多:

  1. Groovy 代码只需要更少的import 语句。此外,freemarker.template.Configuration 还使用了别名 tconf。
  2. Groovy 允许直接使用类型为Template 的变量 tmpl 而不用声明其类型。
  3. Groovy 不需要class 声明或者main 方法。
  4. Groovy 不关心异常,可以不用导入Java需要的IOException。

对Groovy感兴趣吗?别忘了拜访它的主页 >>http://groovy.codehaus.org/ 并下载最新的Groovy发布包哦。(ray_linn)

下一篇 >>> Groovy 2 基础语法

Groovy系列目前以Groovy1.0 - JSR3为基础,但Groovy还在不断的成长当中,如果您发现任何与当前之JSR冲突或者无法运行之脚本,你可以和我联系: email://ray_linn@hotmail.com.

目前無回響 | 發表回響
請利用全文檢索或日期來找你想看的文章 ^^~

< August 2008 >
SunMonTueWedThuFriSat
12
3456789
10111213141516
17181920212223
24252627282930
31

歡迎來到 jini(99% jakarta) blogging
如果要加入我的 blogging 網頁
可以抓下面的小圖
jini (99% jakarta) blogging
link 是 www.softleader.com.tw:8668
alt 請寫 jini (99% jakarta) blogging

Blog 精選
>>Jakarta
>>Java Database
>>JAAS
>>Code Style
>>Groovy
>>Self Misc.

不會用 snipsnap 嗎
請查詢 snipsnap-help.

我會發言的討論版
jini in>>jsptw


我發行的電子報(Java Opensource Newspaper)
>>BIG5-Traditional Chinese Version
>>GB-Simplified Chinese Version

Users: (2)
… and 106 Guests


一群Java高手的部落格
>>JiaYun
>>jserv
>>Forth
>>Tempo
>>edwardsayer
>>swanbear
>>jini's JavaEE 5
>>雅加達爪哇咖啡北京分店

其他連結:
XHTML 1.0 validated
CSS validated
RSS 2.0 validated
powered by snipsnap
Attribution-NonCommercial-ShareAlike 1.0
Java b Blog
RSS Feed

Powered by SnipSnap 0.4.2a

snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt