groovy入门(二)Codes as data, or closures
首页
http://groovy.codehaus.org/
官方文档
http://groovy.codehaus.org/Tutorial+2+-+Code+as+data,+or+closures
Closures
One of the things that makes Groovy different than most compiled languages is that you can create functions that are first class objects. That is you can define a chunk of code and then pass it around as if it were a string or an integer.
square = { it * it }
square(9)
The curly braces around the expression "it * it" tells the Groovy compiler to treat this expression as code. In the software world, this is called a "closure".
There are some built in functions that take a function like this as an argument. One example is the "collect" method on arrays.
[ 1, 2, 3, 4 ].collect(square)
By default closures take 1 parameter called 'it', you can also create closures with named parameters.
printMap = { key, value -> println key + "=" + value}
['carl':'luohua','kiko':'kangyiyi'].each(printMap)
printList = { println it }
['carl','kiko'].collect(printList)
More Closure Examples
fullString = ""
orderParts = ["BUY", 200, "Hot Dogs", "1"]
orderParts.each {
fullString += it + " "
}
println fullString
First, the closure is interacting with a variable outside itself.
The second thing that is different about this example is that the closure is "anonymous".
Another map example:
myMap = ["asdf": 1 , "qwer" : 2, "sdfg" : 10]
result = 0
myMap.keySet().each( { result+= myMap[it] } )
println result
Dealing with Files
fileDirectory = "d:\\temp\\"
fileName = "test.txt"
file = new File(fileDirectory + fileName)
printFileLine = { println "File line: " + it }
file.eachLine( printFileLine )
file.eachLine
Dealing with strings
stringDate = "2005-07-04"
dateArray = stringDate.split("-")
year = dateArray[0].toInteger()
year = year + 1
newDate = year + "-" + dateArray[1] + "-" + dateArray[2]
references:
http://groovy.codehaus.org/groovy-jdk/
分享到:
相关推荐
GROOVY入门经典GROOVY入门经典GROOVY入门经典GROOVY入门经典
Groovy 入门教程 Groovy 是一种基于 Java 语言的脚本语言,运行在 JVM 中,语法与 Java 相似,但抛弃了 Java 的一些烦琐的语法规则,提供了更加简洁和灵活的编程体验。 Groovy 的特点 1. 简洁的语法:Groovy 语法...
Groovy是一种基于Java平台的动态、灵活的编程语言,它设计的目标是简化开发流程,提高开发效率。...通过阅读《Groovy入门经典》这本书,你可以系统地了解Groovy的基础知识和高级特性,逐步掌握这个强大而有趣的语言。
在"Groovy入门]第二讲.完成文本界面的程序框架"这个主题中,我们将深入探讨如何使用Groovy构建一个简单的文本界面程序。 首先,让我们了解Groovy的基本语法特点。Groovy允许开发者使用更接近自然语言的语法,比如...
在本文中,我们将深入探讨Groovy的基础知识,包括语法特性、面向对象编程、脚本使用以及与其他Java技术的集成,以帮助初学者快速入门。 1. **Groovy语法简介** - Groovy的语法简洁且易于理解,它融合了多种语言的...
本书“Groovy入门经典”提供中英文双语版本,对于想要学习或深入了解Groovy的开发者来说,是一份非常宝贵的资源。 首先,Groovy的语法简洁,易于理解。与Java相比,Groovy省略了许多不必要的括号和分号,这使得代码...
Groovy入门经典一书是Groovy编程语言的入门教材,旨在引导Java开发人员和脚本语言新手掌握Groovy语言的基本知识和高级应用。Groovy作为一种动态脚本语言,与Java有相似的语法结构,但在功能和灵活性上远超过Java。...
此外,Groovy支持闭包(Closures),这是其强大的功能之一,可以用来创建函数式编程风格的代码。 Groovy还提供了许多其他特性,比如元编程(Metaprogramming)、领域特定语言(DSLs)构建能力,以及对Java库的无缝...
《Groovy入门经典》奉书内容全面详尽,浅显易懂,易于选择性阅读。可以作为对Groovy语言感兴趣的计算机软件开发人员的参考书。.., Groovy是唯一能够扩展Java平台的脚本语言。Groovy提供类似于Java的语法结构,本地化...
### 经典Groovy入门资料知识点详解 #### 一、Groovy简介与快速入门 **1.1 使用Groovy** Groovy是一种灵活的面向对象编程语言,它与Java有着良好的兼容性,允许开发者以简洁而强大的方式编写代码。对于那些急于...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个扩展,可以无缝集成到Java项目中。...通过阅读《Groovy经典入门》这本书和实践其中的示例,你可以快速掌握Groovy语言并开始利用其强大的功能。
在这篇关于“Groovy入门”的第四讲中,我们将深入探讨这两个主题。 ### 1. 数据搜索功能 在Groovy中,数据搜索通常涉及到数组、集合或字符串的遍历。Groovy的列表和集合提供了丰富的API来帮助我们高效地查找特定...
Groovy_in_Action.pdf Groovy经典入门.pdf 使用Grails快速开发Web应用.pdf 在Eclipse里使用Grails类创建工具.pdf Programming Groovy. Dynamic Productivity for the Java Developer.pdf等一系列groovy资源
### Groovy 快速入门指南知识点详解 #### 一、集合操作 Groovy 提供了对集合的强大支持,包括 `List` 和 `Map` 的多种操作方式。 **1. List** - **定义与访问** - Groovy 中的 `List` 可以包含不同类型的元素。...
Groovy是一种基于Java平台的动态编程语言,它与Java语法高度兼容,但提供了更简洁、更灵活的写法,使得开发效率得以提升。本讲主要介绍Groovy的基础知识,包括如何进行项目演示以及如何搭建Groovy的开发环境。 首先...