Groovy笔记

Groovy 学习:     

1. groovy支持动态类型(不指定变量类型),也支持静态类型。

   List的定义 [],Map的定义  [:]

   这两者都支持下标访问。

 

2. 每一行就是一个语句,可以没有分号; 但最好是用分号分隔。

   而同时,groovy一个语句也可以像java一样跨多行。

 

3. 如何定义函数

   groovy中定义方法同java基本类似,只是return关键字可以不写,返回类型也可以不写(默认是Object)。调用方法时可以不用括号。

 

4. Groovy支持在字符串中包含表达式,类似shell的表达式。是${}或者$形成的,这个是在调用toString()的时候才会求值的。其实此时的字符串是instanceof groovy.lang.GString

5. 可以直接运行脚本,不用定义一大堆语法结构,那么麻烦。    

    Groovy 的运行:

    eclipseIDE环境中,groovy代码是首先编译成了java的字节码(.class文件),然后再运行java程序。

而如果是直接通过groovy运行groovy代码的话,则运行环境如下所示:

java  -Dprogram.name="" -Dgroovy.home="" -Dtools.jar="" -Dgroovy.starter.conf="" -Dscript.name="" -classpath "" org.codehaus.groovy.tools.GroovyStarter --main groovy.ui.GroovyMain --conf "" --classpath ""  D:\temp\testgroovy.groovy

 

例如:

java -Dprogram.name="" -Dgroovy.home="D:\DEV_ENV\groovy-1.6.1" -Dtools.jar="C:\DEV_ENV\Java\jdk1.5.0_11\lib\tools.jar" -Dgroovy.starter.conf="D:\DEV_ENV\groovy-1.6.1\conf\groovy-starter.conf" -Dscript.name="D:\temp\testgroovy.groovy" -classpath "D:\DEV_ENV\groovy-1.6.1\lib\groovy-1.6.1.jar" org.codehaus.groovy.tools.GroovyStarter --main groovy.ui.GroovyMain --conf "D:\DEV_ENV\groovy-1.6.1\conf\groovy-starter.conf" --classpath "C:\DEV_ENV\TimesTen\tt70_32\lib\ttjdbc5.jar;;."  D:\temp\testgroovy.groovy

    Groovy 的主要特性:

  Closure(闭包)的支持

本地的ListMap语法

 Groovy标记:支持多种标记语言,如XMLHTMLSAXW3C DOM

 Groovy Path表达式语言:类似Xpath

 Groovlet:用简单的Groovy脚本实现Servlet

 Groovy SQL:使得和SQL一起工作更简单

 Groovy Bean:和Bean一起工作的简单语法 Groovy模版引擎:简单使用,集成了Gpath和编译成字节码

 Ant脚本化

正则表达式:简洁的脚本语法使用正则表达式

操作符重载:使CollectionMap的数据类型简单化

多形式的iterationAutoboxing

直接编译成Java字节码,很干净的和所有已存在的Java对象和类库一起工作    

        

·闭包

闭包类似于java中的内部类,区别在于闭包中只有一个函数定义,参数可以有多个。 闭包用“{}”括起,“->”前面是参数,后面是处理语句,使用call调用。

 

 

 

 

 

//闭包调用是使用call

 

def closure1 = {str1,str2 ->

    println str1 +","+ str2;

 }

closure1.call("a","b");

 

 

 

//定义闭包

 

def closure2 = {println it};

//定义方法

def foo(temp){

    temp.call("hello");

    temp.call([1,2]);

}

 

//传递闭包给方法

foo(closure2);

//或者直接是

foo( {println it} );

 

 /**

  * 传递闭包给方法2

  */

//it是关键字

//将输出List的每一个元素

def testList = [1,2,3,5];

testList.each{println "${it}"};

 

//->操作符

def testList = [1,2,3,5];

testList.each{item -> print item+";"};

       

grails的文档手册:

        http://www.chinagroovy.org/grails-doc/index.html

        http://grails.org/doc/latest/

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值