groovy curry的用处

groovy curry的用处 - 疯狂的菠菜 - ITeye技术网站

groovy curry的用处

博客分类:Groovy

GroovyJava 

开始一直不理解闭包中的curry有什么用处, 最近刚好用到, 才算搞明白.

对于一个闭包定义:

Java代码  
  1. def myClosure = {def param -> println param}
def myClosure = {def param -> println param}

如果要在一个调用中使用闭包

Java代码  
  1. def invokeClosure(def myClosure){
  2. ...
  3. myClosure();
  4. ...
  5. }
def invokeClosure(def myClosure){...myClosure();...
}

如果我要将一个带有参数的闭包作为另一个方法的参数, 按我本来的想法, 会这样做:

Java代码  
  1. invokeClosure(myClosure("haha"));
invokeClosure(myClosure("haha"));

如果这样调用, 那么会先将myClosure(myParam)闭包执行, 然后将执行结果作为invokeClosure()方法的参数, 所以没法得到我期望的结果, 这是就应该使用curry了:

Java代码  
  1. invokeClosure(myClosure.curry("haha"));

posted on 2012-08-22 10:05 lexus 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/08/22/2650294.html

groovy curry的用处相关推荐

  1. 【Groovy】闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )

    文章目录 一.闭包参数绑定 1.闭包参数绑定 curry 函数 2.闭包参数绑定 rcurry 函数 3.闭包参数绑定 ncurry 函数 二.完整代码示例 一.闭包参数绑定 闭包 Closure 提 ...

  2. 谈谈Groovy闭包

    A closure is a function with variables bound to a context or environment in which it executes. 概述 闭包 ...

  3. Groovy(Java笨狗)系列-Working with closures(1)

    翻译自<Groovy in action>,如有不准确之处,希望指教! closures(闭包)很重要,非常的 重要!!!可以被认为是Groovy中一个非常有用的特性.同时,在你没有完全了 ...

  4. 教程– Griffon:使用Groovy构建桌面应用程序

    如果您愿意将Groovy融入其中,那么构建桌面应用程序将是一种愉快的体验. Griffon是一个遵循Grails精神的应用程序框架,将乐趣带回了桌面开发. 桌面应用程序开发 ,这是当今Web开发,并发 ...

  5. groovy的Closure

    1.Closures的语法 格式语法:{ [closureParameters -> ] statements } { name -> println name } 2.Closures对 ...

  6. Groovy单元测试

    单元测试说明 spock是基于groovy的测试框架,spock本身集成了Mockito+junit的功能,并且可以springboot-test结合启动容器测试.静态方法和私有方法仍需要使用Powe ...

  7. 第3章 Groovy初学者

    第3章 Groovy初学者 Groovy是对Java的补充.扩充,在某些情况下,它还提供了非常必要的改进.(毕竟,Java早在1995年就发布了.那是软件时代的前寒武纪,不是吗?) 例如,Java中需 ...

  8. Idea groovy表生成实体类带注释

    Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...

  9. groovy–流程控制

    在本篇文章中,我们将介绍逻辑分支,循环,以及如何从if-else以及try-catch代码块中返回值. if – else Groovy 支持Java传统的if-else语法: def x = fal ...

  10. java 线程 通过interrupted_Java线程的传说(1)——中断线程Interrupted的用处

    中断线程 -- interrupt() 一个正在运行的线程除了正常的时间片中断之外,能否被其他线程控制?或者说其他线程能否让指定线程放弃CPU或者提前结束运行? 除了线程同步机制之外,还有两种方法: ...

最新文章

  1. Kncok之绑定事件
  2. linux 之免交互操作
  3. [我的1024开源程序]30元写的广义误差分布函数
  4. Flex Skin Design Extensions Flex Component Kit 下载.
  5. 智能家居(工厂模式)
  6. 全年营业额怎么计算_门店盈亏平衡计算及案例分析 | 商品管理
  7. 在Mac电脑上如何对 Brotli格式进行压缩与提取
  8. linux模块创建proc,[Linux 运维]/proc/modules 以及内核模块工具
  9. python语言中split-python中的split()函数和os.path.split()函数使用详解
  10. request_irq与request_threaded_irq
  11. 二进制编辑和进程监控工具
  12. (二)计算软件的安装:truegrid、ls-prepost、ls-dyna
  13. 黑苹果内置硬盘识别成外置硬盘_空间大?安全更重要,麦沃 K35274D硬盘阵列盒使用体验--数据无价...
  14. 测试统计学卡方,t检验,Kappa和Kendall评价
  15. 电脑遇到蓝屏的时候怎么解决
  16. html 怎么做动态效果图,css如何让图片动起来?
  17. 华为HiLink智慧家庭生态发布 引领未来智能生活
  18. Android Studio 调试技巧大全
  19. mysql计算折纸_折纸飞机实验报告.doc
  20. 鹅厂DB吐槽大会,约你来战

热门文章

  1. 美化windows xp 完全教程
  2. PID算法的简单了解
  3. 企业信息安全————3、如何建立企业安全框架
  4. permutohedral lattice理解
  5. C语言函数针对训练--递归篇(动画讲解,由易到难递归例题)
  6. OAI SDR LTE 基站部署
  7. java清除session_退出页面自动清除java session方法
  8. Spring Cloud与Dubbo优缺点详解
  9. Pygame小游戏:玩扫雷就在瞎点的,不止你一个人。
  10. java 货币符号_java使用Currency类获得指定国家的货币符号