`
leon1509
  • 浏览: 536959 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)打动你朋友的11条Groovy超炫代码

阅读更多
http://www.groovyq.net/content/%E6%89%93%E5%8A%A8%E4%BD%A0%E6%9C%8B%E5%8F%8B%E7%9A%8411%E6%9D%A1groovy%E8%B6%85%E7%82%AB%E4%BB%A3%E7%A0%81



1. List中的每个元素乘2:
(1..10)*.multiply(2)


2. List求和:
//元素均为为数字
(1..1000).sum()
//元素含有字符
['a',3,'z'].sum()  //结果为字符串‘a3z’


3. List中是否含有某个字符串
def wordList = ['groovy', 'akka', 'grails framework', 'spock', 'typesafe']
def tweet = 'This is an example tweet talking about groovy and spock.'
wordList.any { word -> tweet.contains(word) }

//该方法同样适用于对象
class Person{
    String name
}
def person1=new Person(name:'person1')
def person2=new Person(name:'person2')
def person3=new Person(name:'person3')
def wordList = [person1,person2]
def tweet = [person3]
wordList.any { it -> tweet.contains(it) }


上述代码结果为false,如果tweet = [person3,person1],结果就为true

4. 文件内容读取,易如反掌:
//读取所有内容
new File("data.txt").text
//按行读取,返回List
new File("data.txt").readLines()


5. 生日快乐!
(1..4).each { println 'Happy Birthday ' + ((it == 3) ? 'dear Arturo' : 'to You') }


6. 按条件拆分List
def (passed, failed) = [49, 58, 76, 82, 88, 90].split{ it > 60 }


7. 获取和解析XML Web服务
def results = new XmlSlurper().parse('http://search.twitter.com/search.atom?&q=groovy')


8. 找出List中最大最小值:
[14, 35, -7, 46, 98].min()
[14, 35, -7, 46, 98].max()


9. 使用GPars提供的直观、安全的方式控制Groovy的并行任务
import groovyx.gpars.*
GParsPool.withPool { def result = dataList.collectParallel { processItem(it) } }


10.找质数算法(Sieve of Eratosthenes筛法)
def t = 2..100
(2..Math.sqrt(t.last())).each { n -> t -= ((2*n)..(t.last())).step(n) }
println t

这个方法来自于Groovy Prime Numbers的评论。

11.有奖问答:FizzBuzz问题 - 打印1到100这些数字,遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。
for (i in 1..100) {
    println "${i%3?'':'Fizz'}${i%5?'':'Buzz'}" ?: i
}

另附两个有趣问题的解答:

现在手头有0.5美元、0.25美元、10美分、5美分、1美分,将1美元换成这些零钱,有多少种换法:
def count=0
101.times{ x1 -> 21.times{
    x2 -> 11.times{
        x3 -> 5.times{
            x4 -> 3.times{
                x5 -> if(x1*1+x2*5+x3*10+x4*25+x5*50 == 100){
                         count++
                         println "$x1*1+$x2*5+$x3*10+$x4*25+$x5*50 == 100"
                    }
                }
            }
        }
    }
}
println count


汉诺塔问题:
def hanoita(n, a, b, c){
    if(n==1){
        println "$n : $a -> $c"
    }else{
        hanoita n-1, a, c, b
        println "$n : $a -> $c"
        hanoita n-1, b, a, c
    }
}
hanoita 5, 'a', 'b', 'c'

奇妙吧?就是这么简单!对于上述代码,如果你有更好的提议,也可以分享给大家。
分享到:
评论

相关推荐

    Groovy in Action源代码

    6. **Grails框架**:如果源代码中涉及到Grails,那么你将有机会了解这个基于Groovy的全栈Web开发框架,包括Controller、Service、Domain Class、GSP视图等组件的使用。 7. **AST转换**:Groovy编译器支持用户自定义...

    java在嵌入运行groovy代码1

    如果你的 Groovy 脚本是一个完整的类结构,包括 `main` 方法,你可以使用 `GroovyShell` 来执行 `main` 方法并传递参数,就像下面的代码所示: ```java String[] args = new String[]{"Zhangsan", "10"}; Binding ...

    groovy in action 中文版 2017.11

    文档还提供了一些基本的运行和编辑Groovy代码的方法,并且提到了Groovy的IDE和编辑器支持情况,以及一些Groovy的基础知识,如类和对象的声明、使用脚本、处理文本、数字、列表、映射和范围,以及如何在Java环境中...

    Elasticsearch Groovy 远程代码执行漏洞1

    然而,由于其高度可定制性和灵活性,它也存在安全风险,比如 Groovy 远程代码执行漏洞。 在本文中,我们将探讨 Elasticsearch 中的一个 Groovy 远程代码执行漏洞,该漏洞允许攻击者通过构造恶意请求来执行任意系统...

    eclipse安装groovy插件的步骤

    4. **编写 Groovy 代码**:在新建的 Groovy 类文件中,可以开始编写 Groovy 代码。例如: ```groovy class Greeting { def sayHello() { println "Hello, Groovy!" } } ``` 5. **运行 Groovy 类**:右键点击...

    Java中使用Groovy的三种方式

    通过`groovy.lang.GroovyShell`或`groovy.lang.GroovyScriptEngine`,你可以方便地运行Groovy代码片段,而无需构建完整的Groovy项目。这种方式适用于快速原型开发、自动化测试或动态配置等场景,它减少了代码量,...

    groovy-sdk-4.0.3

    Groovy SDK 4.0.3 是一个针对Groovy编程语言的软件开发工具包,它包含了Groovy语言的运行环境和开发所需的各种组件。...通过安装和配置这个SDK,你可以开始探索Groovy的动态世界,体验它在各种应用场景中的强大功能。

    Groovy学习资料

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

    groovy-all

    2. **Groovy Compiler**: Groovy的编译器可以将Groovy源代码编译为Java字节码,这使得Groovy程序能够与Java代码无缝交互。 3. **Groovy Shell**: 提供了一个命令行接口,允许用户直接运行Groovy代码片段,用于快速...

    groovy入门经典,groovyeclipse 插件

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个扩展,可以无缝集成到Java项目中。...通过阅读《Groovy经典入门》这本书和实践其中的示例,你可以快速掌握Groovy语言并开始利用其强大的功能。

    groovy

    Groovy结合了Java的静态类型系统和Python、Ruby等动态语言的灵活性,使得开发者可以更加高效地编写代码。本篇文章将深入探讨Groovy语言的关键特性和应用场景。 一、Groovy简介 Groovy是2003年由James Strachan创建...

    apache-groovy-sdk-3.0.6.zip

    4. **Groovy Ant任务**:Groovy SDK包含了一些Ant任务,允许你在Ant构建脚本中直接使用Groovy,比如运行Groovy脚本、编译Groovy源代码等。 5. **Groovy类库**:Groovy标准库提供了一系列的类和模块,涵盖了集合操作...

    groovy入门实例代码详细(包括字符串,map,闭包等等)

    Groovy是一种基于Java平台的动态编程语言,它与Java语法高度兼容,但提供了更简洁、更灵活的写法。在Groovy中,你可以感受到更强的表达性和更高的开发效率。...希望这个代码包能帮助你快速入门Groovy,开启编程之旅。

    Java调用Groovy,实时动态加载数据库groovy脚本

    Groovy代码可以被Java编译器理解,并且在运行时,GroovyShell或GroovyClassLoader等工具能够即时编译和执行Groovy脚本,这为动态加载和执行提供了便利。 当我们需要在Java程序中调用Groovy脚本时,可以使用以下步骤...

    Groovy入门教程[参照].pdf

    3.兼容 Java:Groovy 可以与 Java 语言混合使用,Groovy 代码可以调用 Java 代码,反之亦然。 开发环境 1. JDK 1.5 以上 2. Eclipse + Groovy 插件(支持 Groovy 1.5.7) 创建 Groovy 项目 1. 新建一个 Java ...

    apache-groovy-sdk-4.0.1下载

    解释器允许你运行Groovy脚本,而编译器则可以将Groovy代码转换成Java字节码,使得Groovy程序能在Java虚拟机(JVM)上运行。这对于Java开发者来说是个巨大的优势,因为他们可以无缝地将Groovy集成到现有的Java项目中...

    groovy的eclipse插件

    重启后,你可以在Eclipse中创建新的Groovy项目,编辑Groovy源代码,并利用内置的Groovy编译器进行构建和调试。 Groovy Eclipse插件的特性包括: - **语法高亮**:提供Groovy语言的语法着色,使代码更易读。 - **...

    groovy代码-测试代码保存

    在学习和使用Groovy时,理解这些核心概念和特性至关重要,它们将帮助你有效地编写、理解和调试Groovy代码。此外,配合Junit或其他测试框架,Groovy可以构建强大的测试套件,提高软件质量。对于开发者来说,掌握...

    apache-groovy-sdk-3.0.9.zip

    本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的...最重要的是,您将学会如何在日常 Java 应用程序开发中联合使用 Groovy 和 Java 代码

    java动态代码执行

    Groovy提供了GroovyShell、GroovyScriptEngine和GroovyClassLoader等工具,允许我们执行Groovy脚本或字符串中的代码。 GroovyShell是Groovy提供的一种简单方式来执行Groovy脚本。通过创建一个GroovyShell实例,我们...

Global site tag (gtag.js) - Google Analytics