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

Groovy学习笔记之三——语法特性

阅读更多

一、Groovy循环

1、repeat函数:

def repeat(val)

def repeat(val,repeat=循环次数)

def repeat(msg){
  for(i=0;i<5;i++){
     prinln msg
  }
}
def repeat(msg,repeat=5){
  for(i in 0..<repeat){
     prinln msg
  }
}

 注意,参数不加def,for不需要类型,不需要分号

 

2、范围表达式及in循环:

0..4表示0、1、2、3、4

0..<4表示0、1、2、3

a..<e表示a、b、c、d

for(i in 0..4){

}

 

 

二、Groovy集合

1、集合定义:

def range = 0..4

def coll = [1,2,3,4]

def array= ["a","b","c"]

 

2、添加值

array.add("d")

array<< "d"

array[3] = "d"

 

3、检索(索引从0开始)

array[index]

 

4、集合操作

Groovy集合允许直接添加或删除单个元素或集合

def coll = [1,2,3,4]
coll + 5   //结果为[1,2,3,4,5]
coll - [2,3]  //结果为[1,4,5]

 

 

5、集合函数

(1) join()函数:参数为分隔字符,作用是将集合的元素用指定分隔符拼接成字符串,与javascript的join一样

 

def coll = [1,2,3,4]
coll.join(",")   //结果为"1,2,3,4,5"

 

(2) count()函数:参数为集合中的某元素,作用是统计指定元素在集合中出现的次数

def coll = [2,1,2,3,4,2]
coll.count(2)   //结果为3

 

6、分布操作符(spread operator)

def coll = ["Java","Html"]
coll*.toUpperCase()  //将集合所有值都转换成大写,结果为["JAVA","HTML"]

 

 7、集合迭代

def coll = [1,2,3,4,5]
coll.each{
  println it
}

         类似Jquery的$.each方法,it是关键字,指向迭代到的当前元素。另提前引入闭包概念,each后的{}括起来的代码块就是一个闭包。如果不用it,可以自己指定变量:

def coll = [1,2,3,4,5]
coll.each{value ->
 println value
}

 

 

三、Groovy映射

        Java的映射是键值对的集合,典型的就是Map类型。Groovy映射机制其实就是java.util.LinkedHashMap

1、定义

def map = [name:"java","type":"book"]

         注意,key不比是String,Groovy会自动转成String

2、操作

map.put("id",12)
prinln map.get("name")  //打印结果:java
map.alias = "别名"  //等价于map.put("alias","别名")
prinln map.alias  //打印结果:别名
map["description"] = "描述信息"  //等价于map.put("description","描述信息")
prinln map["description"]  //打印结果:描述信息

         注意,使用[]从映射获取项时,必须将项作为String引用。

 3、迭代映射

map.each{key,value ->
  println "${key}:${value}"   //等价于println key+”:“+value
}

 

 

四、Groovy闭包

        闭包是一个代码块。在集合和映射中的迭代中已经出现了闭包使用例子,对于所有的集合和映射都能使用each闭包进行迭代。闭包除了常出现在迭代中,还有其他用途,如作为参数进行传递使用(Groovy中的函数和方法除外):

//定义一个闭包,接收一个word参数
def excite = {word ->
 return "${word}!!"  //${word}意思是在字符串中使用word变量的值替换
}

//调用闭包
excite("java")  //打印java
excite.call("jsp")  //打印jsp

 

分享到:
评论

相关推荐

    Groovy学习笔记 PDF版

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

    Groovy 学习笔记

    Groovy结合了Python、Ruby和Smalltalk等语言的特性,同时保留了与Java的无缝集成能力,使得它在编写脚本、构建工具、Web应用以及企业级应用程序开发中都有广泛的应用。 **一、Groovy基础** 1. **语法简洁**: ...

    Groovy学习笔记.pdf

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

    Groovy学习笔记

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

    groovy学习笔记

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

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

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

    Groovy语法&Gradle配置学习笔记

    Groovy语法借鉴了多种语言的特性,如Python、Ruby和Java,这使得Java开发人员能够轻松上手。Gradle则是一种强大的构建自动化工具,广泛用于Java、Android以及其他JVM语言的项目,它允许通过Groovy或Kotlin DSL(领域...

    Groovy need not rails——介绍自己写的一个基于groovy的框架,Webx

    2. **DSL支持**:Groovy的强大之处在于其领域特定语言(DSL)能力,Webx可能会提供一套内建的DSL,让开发者能以更简洁的方式定义路由、操作和视图。 3. **自动化工具**:基于Groovy的框架通常会包含一系列自动化...

    Java JDK 6学习笔记——ppt简体版.rar

    通过"Java JDK 6学习笔记——ppt简体版",学习者可以系统地学习到如何使用JDK 6进行开发,包括环境配置、基本语法、类库使用、异常处理、IO流、网络编程、多线程等各个方面。PPT格式通常直观易懂,便于快速理解和...

    groovy基础语法.pdf

    Groovy是一种基于Java虚拟机(JVM)的敏捷开发语言,它融合了Python、Ruby和Smalltalk等语言的特性。Groovy语言能够与Java无缝集成,并且支持动态语言特性,包括动态类型、闭包和元编程等。Groovy的语法非常接近Java...

    Java JDK 6学习笔记——ppt简体版附课本代码

    这份“Java JDK 6学习笔记——ppt简体版”涵盖了Java语言的核心概念、语法特性以及JDK 6的新功能,旨在帮助初学者和有经验的开发者深入理解并掌握这一版本的Java开发环境。 首先,Java JDK 6的安装与配置是学习的...

    Groovy语法系列教程之字符串(三).pdf

    ### Groovy语法系列教程之字符串(三) #### Groovy语言简介 Groovy是基于Java平台的一种敏捷开发语言,它具有动态语言的特性,同时又能与Java无缝集成。Groovy的设计哲学是让程序员能够用更少的代码做更多的事情,...

    Groovy 学习资料

    开始学习Groovy时,可以从基础语法开始,了解变量、控制流、函数和类的用法。然后深入到闭包、元编程等高级主题,最后通过实践项目巩固所学知识。 8. **总结** Groovy作为Java平台上的动态语言,不仅简化了编码,...

    Groovy学习资料

    Groovy结合了Java的面向对象特性和Python、Ruby的简洁语法,使得它成为Java开发者进行快速开发、自动化任务以及编写简洁代码的理想选择。这份"Groovy学习资料"包含了深入理解和实践Groovy所需的关键知识点,帮助...

    groovy基础语法.doc

    Groovy 基础语法 Groovy 是一种基于 Java 平台的高级编程语言,它融合了 Ruby、Python 和 Smalltalk 的一些最有用的功能,同时保留了基于 Java 语言的核心语法。Groovy 提供了更简单的替代语言,且几乎不需要学习...

    groovy学习

    这篇名为“groovy学习”的博文可能是关于Groovy语言的基础知识、语法特性以及在实际项目中的应用。虽然没有提供具体的博文内容,我们可以根据Groovy的一些关键特点来展开讨论。 1. **Groovy语法**: - Groovy的...

    Groovy学习资料(包括Groovy in action 的中英文以及API)

    总的来说,"Groovy in Action"提供了全面的学习材料,配合API文档,可以帮助开发者迅速掌握Groovy的精髓,并将之应用到实际项目中。通过阅读这本书和实践其中的示例,你将能更好地理解和利用Groovy的强大力量,提升...

Global site tag (gtag.js) - Google Analytics