Groovy 学习手册(7)】的更多相关文章

10. Groovy GPars GPars 一开始在 Groovy 中作为一个单独的项目,同时带来了很多并发的机制.它包含了很多并行的map/redue,Actors,以及其他很多并发的模块. 1. Parallel Map-Reduce 在下面的例子中,我们定义了一个包含毕业年份和平均分数的Student类. class Student { int graduationYear; double gpa; } 同时定义个包含Student的 List,这时你就可以使用 GPars 类库对 Li…
9. 不可变特性 不可变特性和函数式编程在一起就像是花生酱和果酱在一起一样.虽然没有必要非要在一起使用,但他们相处得很好. 在纯正的函数式语言中,每个函数对本身之外没有影响,即没有副作用.这意味着每次调用函数时,返回相同输入的相同值. 为了适应这种行为,需要不可变的数据结构.不可变的数据结构不能直接更改,但每次操作都返回一个新的数据结构. 例如,Scala语言里的 Map 就是不可变的. val map = Map("Smaug" -> "deadly") v…
8. 函数式编程 函数式编程(FP)是一种编程风格,侧重于函数和最小化状态的变化(使用不可变的数据结构).它更接近于用数学来表达解决方案,而不是循序渐进的操作. 在函数式编程里,其功能应该是"无副作用"(不会改变外部功能),参考透明的(一个函数每次传递相同的参数,返回相同的值). 函数式编程可以被看作是一种更常见的命令式编程的替代,它更接近告诉计算机遵循每个步骤. 虽然函数式编程可以在Java 8 前实现,但在 Java 8 版本,通过 Lambda 和函数接口,才真正在语言层面上支持…
6. 领域特定语言 Groovy 有许多特性,使它非常适合写DSL(领域特定语言).这些特性包活: 具有委托机制的闭包: 点号(.)和语句末尾的分号(;)是可选的: 运算符的重载(例如,加号,减号等): methodMissing 和 propertyMissing 方法 Tip 关于 DSLs (Domain Specific Languages ),可以参考此书<DSLs In Action>. 特定领域语言可以用于许多目的,如允许领域专家阅读和编写代码,或澄清业务逻辑的含义.它们允许商业…
五. Groovy 的设计模式 设计模式是一种非常好的方式,可以使你的代码变得实用,可读又具有扩展性.跟 Java 相比,在 Groovy 里使用设计模式使代码更加简洁和容易. 1. 策略模式 设想一下,下面有三个不同方法用来计算数字相加的总和: def totalPricesLessThan10(prices) { int total = 0 for (int price : prices) if (price < 10) total += price total } def totalPri…
二. 工具 1. 控制台 groovyConsole: Groovy 控制台是一个非常易于使用和简单的轻量级的编辑器.你可以在里面做很多事情. 在编辑器里面可以书写代码,Windows 下,按下Ctrl + R 来运行代码,清除工作台的输出信息使用Ctrl + W 快捷键. 2. 编译 groovyc: 可以借助 Java 7 的动态调用设计的优势,可以使用--indy 标识符.这个在 Groovy 命令行下也同样适用. 动态调用可以帮助编译器提高性能,例如鸭子类型,元编程,方法缺失调用等. 3…
1. 需要安装的软件 Java / Groovy 对应 Java 和 Groovy,你需要安装以下软件: Java JDK,例如 JDK 8 IDE,例如 Eclipse,NetBeans 8 Groovy 下载以后,安装即可.接下来需要配置 Java_Home 和 Groovy_Home环境变量.如下(以 Mac为例): 在你的用户根目录下,使用命令ls -a 找到.bash_profile文件,注意,它是一个隐藏文件,而且对它的修改只对当前用户生效. 使用 vi 命令, vi .bash_p…
一.引言 正如官网的slogan所描述:kotlin,是一门让程序员写代码时更有幸福的现代语言. 同时,也正如维基百科里介绍: JetBrains公司希望Kotlin能够推动IntelliJ IDEA的销售 kotlin是一门奔着钱而生的语言,我相信他一定会成为一门有 "钱途"的语言. JetBrains这家公司真的把程序员当 人,把程序员当用户来对待.从kotlin的迭代和发版节奏,可以看出来,他们迭代kotlin就像我们程序员迭代我们公司的app一样,很重视用户体验,很重视程序员的…
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后就是上手容易,操作简单.记得在刚刚接触Redis的时候,由于当时项目的工期相当紧张,留给我们做出选择的空间也是非常有限,一旦技术决策失误,造成的后果也比较严重.所以在做出决定之前,我不仅快速的浏览了Redis官网文档,而且还熬夜搜集了很多网上的相关技术文章.在经过一通折腾之后,毅然决然的选择了它,现…
#git学习手册 git: Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.[2] Git 是 Linus Torvalds 为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件. git安装: 1.windows环境安装: msysgit是Windows版的Git,从https://git-for-windows.github.io下载 2.linux环境安装: sudo apt-get install git 3.Mac os环境安装:…