`
csbison
  • 浏览: 153517 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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/

 

 

分享到:
评论

相关推荐

    Groovy学习笔记 PDF版

    在《Groovy学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...

    Groovy 学习笔记

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个重要的补充。Groovy结合了Python、Ruby和Smalltalk等语言的特性,同时保留了与Java的无缝集成能力,使得它在编写脚本、构建工具、Web应用以及企业级应用程序...

    Groovy学习笔记.pdf

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要补充,特别是在脚本编写和快速原型设计方面表现突出。...这份"Groovy学习笔记.pdf"应该会提供一个良好的起点,帮助你踏上Groovy的学习之旅。

    Groovy学习笔记

    ### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点,比如Python和Ruby,同时又能够无缝地与Java...

    groovy学习笔记

    以下是对Groovy学习笔记各章节的详细解释: ### 第1章:数字和字符串 在Groovy中,所有的数字都是Object类型的,这意味着你可以在对象上调用方法。例如,你可以直接在数字上使用加减乘除等运算符,如`12 + 8`。...

    Java整合Groovy脚本笔记

    Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合...

    Groovy学习笔记 Struts2集成--Groovy类作为Action

    通过阅读文章《Groovy学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...

    Groovy_笔记

    根据给定的文件信息,以下是对Groovy编程语言中几个关键知识点的深入解析: ### 多线程在Groovy中的运用 在Groovy中,线程的创建与启动非常直观,可以通过构造`Thread`对象并传入一个闭包(Closure)来实现。闭包...

    读书笔记:Groovy程序设计.zip

    读书笔记:Groovy程序设计

    读书笔记:Groovy 程序设计学习.zip

    读书笔记:Groovy 程序设计学习

    Groovy语法&Gradle配置学习笔记

    Groovy是一种基于Java平台的动态编程语言,它在设计时考虑了简洁性和可读性,使得开发者能够更高效地编写脚本和构建工具。Groovy语法借鉴了多种语言的特性,如Python、Ruby和Java,这使得Java开发人员能够轻松上手。...

    Scala、Groovy++、Stackless Python、Erlang 学习笔记及分享

    Groovy是另一种基于JVM的动态编程语言,它的语法简洁,易于阅读和编写。Groovy与Java高度互操作,可以在现有的Java项目中无缝集成。Groovy的优点在于它支持闭包和元编程,使得代码更加简洁和可扩展。 Stackless ...

    java调用脚本语言笔记(jython,jruby,groovy)

    本文将深入探讨如何在Java中调用三种流行的脚本语言:Jython、JRuby和Groovy。 ### Jython Jython是Python的一个Java实现,它允许Java开发者利用Python的强大语法和丰富的库。要使用Jython,首先需要在项目中引入...

    用Groovy实现DSL领域定义语言

    本系列文章是从原著《Groovy For Domain-Specific Languages》(原作者: Fergal Dearle)中翻译而来,从中加入了一些本人自己的读书笔记和理解。本系列文章不为任何商业目的,只为更好的传播 groovy dsl 技术知识。...

    读书笔记:函数式编程 scala,java8,groovy 学习.zip

    读书笔记:函数式编程 scala,java8,groovy 学习

    sonar-groovy:Groovy的SonarQube插件

    在项目的根目录下创建一个sonar-project.properties文件从项目根目录运行sonar-scanner命令单击分析结尾处提供的链接,以在SonarQube UI中浏览项目的质量笔记CodeNarc :可以通过设置sonar.groovy.codenarc.repor

    Groovy-chenyun2000-mht.rar

    在Groovy-chenyun2000-mht.rar压缩包里的"MHT"文件可能是Groovy或Grails相关的教程、讲座笔记或者案例研究,用户可以离线阅读这些资料,深入理解Groovy语言和Grails框架。 Groovy的主要特点包括: 1. **简洁语法**...

    Jenkins笔记笔记笔记

    【Jenkins笔记笔记笔记】 Jenkins 是一个开源的持续集成(CI)服务器,它使得开发者能够在软件开发过程中实现自动化构建、测试和部署。这个工具在IT行业中被广泛使用,尤其在敏捷开发和DevOps实践中扮演着重要角色...

Global site tag (gtag.js) - Google Analytics