Groovy 学习:
1. groovy支持动态类型(不指定变量类型),也支持静态类型。
List的定义 [],Map的定义 [:] 。
这两者都支持下标访问。
2. 每一行就是一个语句,可以没有分号; 但最好是用分号分隔。
而同时,groovy一个语句也可以像java一样跨多行。
3. 如何定义函数
在groovy中定义方法同java基本类似,只是return关键字可以不写,返回类型也可以不写(默认是Object)。调用方法时可以不用括号。
4. Groovy支持在字符串中包含表达式,类似shell的表达式。是${}或者$形成的,这个是在调用toString()的时候才会求值的。其实此时的字符串是instanceof groovy.lang.GString。
5. 可以直接运行脚本,不用定义一大堆语法结构,那么麻烦。
Groovy 的运行:
在eclipse的IDE环境中,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(闭包)的支持
本地的List和Map语法
Groovy标记:支持多种标记语言,如XML、HTML、SAX、W3C DOM
Groovy Path表达式语言:类似Xpath
Groovlet:用简单的Groovy脚本实现Servlet
Groovy SQL:使得和SQL一起工作更简单
Groovy Bean:和Bean一起工作的简单语法 Groovy模版引擎:简单使用,集成了Gpath和编译成字节码
Ant脚本化
正则表达式:简洁的脚本语法使用正则表达式
操作符重载:使Collection和Map的数据类型简单化
多形式的iteration和Autoboxing
直接编译成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学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个重要的补充。Groovy结合了Python、Ruby和Smalltalk等语言的特性,同时保留了与Java的无缝集成能力,使得它在编写脚本、构建工具、Web应用以及企业级应用程序...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要补充,特别是在脚本编写和快速原型设计方面表现突出。...这份"Groovy学习笔记.pdf"应该会提供一个良好的起点,帮助你踏上Groovy的学习之旅。
### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点,比如Python和Ruby,同时又能够无缝地与Java...
以下是对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学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...
根据给定的文件信息,以下是对Groovy编程语言中几个关键知识点的深入解析: ### 多线程在Groovy中的运用 在Groovy中,线程的创建与启动非常直观,可以通过构造`Thread`对象并传入一个闭包(Closure)来实现。闭包...
读书笔记:Groovy程序设计
读书笔记:Groovy 程序设计学习
Groovy是一种基于Java平台的动态编程语言,它在设计时考虑了简洁性和可读性,使得开发者能够更高效地编写脚本和构建工具。Groovy语法借鉴了多种语言的特性,如Python、Ruby和Java,这使得Java开发人员能够轻松上手。...
Groovy是另一种基于JVM的动态编程语言,它的语法简洁,易于阅读和编写。Groovy与Java高度互操作,可以在现有的Java项目中无缝集成。Groovy的优点在于它支持闭包和元编程,使得代码更加简洁和可扩展。 Stackless ...
本文将深入探讨如何在Java中调用三种流行的脚本语言:Jython、JRuby和Groovy。 ### Jython Jython是Python的一个Java实现,它允许Java开发者利用Python的强大语法和丰富的库。要使用Jython,首先需要在项目中引入...
本系列文章是从原著《Groovy For Domain-Specific Languages》(原作者: Fergal Dearle)中翻译而来,从中加入了一些本人自己的读书笔记和理解。本系列文章不为任何商业目的,只为更好的传播 groovy dsl 技术知识。...
读书笔记:函数式编程 scala,java8,groovy 学习
在项目的根目录下创建一个sonar-project.properties文件从项目根目录运行sonar-scanner命令单击分析结尾处提供的链接,以在SonarQube UI中浏览项目的质量笔记CodeNarc :可以通过设置sonar.groovy.codenarc.repor
在Groovy-chenyun2000-mht.rar压缩包里的"MHT"文件可能是Groovy或Grails相关的教程、讲座笔记或者案例研究,用户可以离线阅读这些资料,深入理解Groovy语言和Grails框架。 Groovy的主要特点包括: 1. **简洁语法**...
【Jenkins笔记笔记笔记】 Jenkins 是一个开源的持续集成(CI)服务器,它使得开发者能够在软件开发过程中实现自动化构建、测试和部署。这个工具在IT行业中被广泛使用,尤其在敏捷开发和DevOps实践中扮演着重要角色...