`
rainy646556896
  • 浏览: 20083 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

groovy学习之闭包的应用

 
阅读更多

直接调用或通过call()方法调用

def adder = {x, y -> return x+y}
assert adder(2, 3) == 5
assert adder.call(4, 5) == 9

 

def benchmark(repeat, Closure worker) {
   def start = System.currentTimeMillis()
   repeat.times{worker(it)}
   def stop = System.currentTimeMillis()
   return stop - start
}
def slow = benchmark(10000)  {(int) it/2}
def fast = benchmark(10000)  {it.intdiv(2)}
println slow
println fast
assert slow > fast

 

通过闭包实现累加

def foo(n) {
   return {n += it}
}

def closure = foo(1)
assert closure(2) == 3
assert closure(1) == 4

 

分享到:
评论

相关推荐

    Groovy学习笔记

    Groovy学习笔记,内容如下: 1.概念 2.基本语法 3.字符串 4.集合 5.类和闭包 6.控制语句 7.操作符重载 8.I/O操作 9.高级应用 10.正则表达式

    apache-groovy-sdk-2.4.11

    了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何使用 JUnit 轻松地进行测试。借助功能完善的 Groovy 开发环境和使用技能,...

    Groovy入门经典.pdf

     Groovy提供类似于Java的语法结构,本地化支持映射和列表、方法、类,闭包和构造器等结构。由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发中小型规模的应用程序。  相对于Java语言,...

    apache-groovy-sdk-3.0.9.zip

    了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何使用 JUnit 轻松地进行测试。借助功能完善的 Groovy 开发环境和使用技能,...

    Groovy入门经典

    Groovy提供类似于Java的语法结构,本地化支持映射和列表、方法、类,闭包和构造器等结构。由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发中小型规模的应用程序。, 相对于Java语言,...

    浅谈PHP 闭包特性在实际应用中的问题

    译注:原文作者比较火星,我不了解 Groovy 以及 Scala 语言,所以这里我加上 Javascript 的实现。 在开始之前先说明下,本例子仅仅是阐明观点,并没有考虑性能等其他方面的因素。 “货比三家” 用个简单的例子开始...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    3.4 Groovy的闭包 30 3.4.1 闭包的定义 30 3.4.2 闭包的代表 31 3.4.3 闭包在GDK中的使用 31 3.5 本章小结 33 第二篇 实际应用 第4章 商品维护 36 4.1 准备工作 36 4.2 查看商品列表 40 4.3 创建和编辑商品 44...

    Grails权威指南

    第1章 寻找grails之旅  1.1 java的困惑  1.2 webc2.0时代  1.3 java的力量  1.4 什么是grails  1.4.1 与java集成  1.4.2 简单而强大  1.4.3 吸取的经验教训  1.5 使用grails的原因 ...

Global site tag (gtag.js) - Google Analytics