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

标签: FAQ GPars Groovy 文摘 | 发表时间:2011-06-17 12:43 | 作者:huwh 冯耀军
出处:http://www.groovyq.net

Dustin Marx在其博文中,跟读者分享了11条Groovy的超炫代码。

<!--break-->

  1. List中的每个元素乘2:
  2. (1..10)*.multiply(2)
  3. List求和:
  4. //元素均为为数字
    (1..1000).sum()
    //元素含有字符
    ['a',3,'z'].sum()  //结果为字符串‘a3z’
    
  5. List中是否含有某个字符串
  6. 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

  7. 文件内容读取,易如反掌:
  8. //读取所有内容
    new File("data.txt").text
    //按行读取,返回List
    new File("data.txt").readLines()
    
  9. 生日快乐!
  10. (1..4).each { println 'Happy Birthday ' + ((it == 3) ? 'dear Arturo' : 'to You') }
    
  11. 按条件拆分List
  12. def (passed, failed) = [49, 58, 76, 82, 88, 90].split{ it > 60 }
    
  13. 获取和解析XML Web服务
  14. def results = new XmlSlurper().parse('http://search.twitter.com/search.atom?&q=groovy')
  15. 找出List中最大最小值:
  16. [14, 35, -7, 46, 98].min()
    [14, 35, -7, 46, 98].max()
  17. 使用GPars提供的直观、安全的方式控制Groovy的并行任务
  18. import groovyx.gpars.*
    GParsPool.withPool { def result = dataList.collectParallel { processItem(it) } }
  19. 找质数算法(Sieve of Eratosthenes筛法)
  20. def t = 2..100
    (2..Math.sqrt(t.last())).each { n -> t -= ((2*n)..(t.last())).step(n) }
    println t

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

  21. 有奖问答:FizzBuzz问题 - 打印1到100这些数字,遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。
  22. 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 代码] 推荐:

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

- 冯耀军 - GroovyQ
Dustin Marx在其博文中,跟读者分享了11条Groovy的超炫代码. List中的每个元素乘2:. //元素均为为数字 (1..1000).sum() //元素含有字符 ['a',3,'z'].sum() //结果为字符串‘a3z’. 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) }.

文章: Groovy 2.0新特性

- - InfoQ cn
新发布的Groovy2.0为这门语言带来了关键的静态特性: 静态类型检查和 静态编译;采用了JDK 7相关的改进: Project Coin语法增强和 新支持的“invoke dynamic” JVM指令;同时, 提高了模块化. 我们将在这篇文章中了解这些新特性的详情. QCon杭州2012大会“社区之夜”开放报名中(10月26日 周五).

我的朋友

- bobo - 牛博国际
我的朋友张有一种怪病,便是他每每只能活一年. 他总是忙不迭地降生下来,匆匆地发育、成熟、学习、找马子、找工作,再匆匆地工作、结婚、生子、退休、苍老、死掉……所有一切总约摸一年完成. 而他的孩子,也总会继承这基因,卷入这轮回,即便每一代都有各自的名字,我也难以尽数,总之一概管他们叫“张”. 于是我们年都要去张的满月酒、去张的婚宴、去张的葬礼,每每也见到孩童的张放着好奇的眼睛向我请教、年少的张开了酒与我抱怨、年迈的张又饱受沧桑地向我宣导.

《朋友,你好》

- - 腾讯ISUX - 互联网用户体验设计
朋友网手机客户端下载页面设计分享. 先让我们来看看一些简单的数据:. ①    97%的中国城市已拥有手机,其中35%拥有智能手机;. ②    在电视与智能手机两者之间,50%的受访者表示宁愿放弃电视而非智能手机;. ③    中国城市智能手机用户随时随地都在使用智能手机,其中家里(66%),旅途中(59%),乘坐交通工具中(52%),餐厅(38%)及商场(30%)是使用智能手机最频繁的地方;.

如果我有男朋友

- Being - 我们爱讲冷笑话
他要开通谷歌纵横,分享自己的地理位置,这样我就能随时都知道他在哪里. 他要开通淘宝支付和京东商城内容分享,这样我就知道他把钱花在哪里. 他要加我的人人,开心和QQ好友,这样我就知道他的人际圈有哪些人. 他要加我的Gtalk,这样他说自己关机睡觉了,我会发现他的状态还是idle. 他要加我的豆瓣,我就知道他看哪些书,喜欢哪些电影,喜欢怎样的姑娘,听怎样的音乐.

如何找到男朋友

- ixfx - 中国三明治

朋友其实就是那枚硬币

- sg - 咆哮女郎柏邦妮
最近两个很亲的人都出了状况,来询问我的意见,. 我老老实实的给了意见,结果她们都做了相反的决定. 我们抛硬币的时候,其实重要的不是到底是A面或者B面,. 重要的是,硬币掀开的一瞬间,我们心中会强烈的期待其中一个,. 有时朋友也是这样,我们不过是那枚硬币,. 我们做的也许不是给他们意见,顶多是促成一个决定,.

如何交到漂亮的女朋友

- 友书 - 译言-每日精品译文推荐
来源How To Avoid \'Just Being Friends\' With Beautiful Women. 告诉我你之前是否听过下面的话:. 你真酷,我喜欢你……但是不是那种喜欢. 你对我很重要……”——话说到这份上了,你估计是没戏了,放弃吧. 我真不想告诉你们,但是如果你听到这个了,游戏已经结束了……我知道好多男孩会继续发邮件给我,问我是否可以给他第二次机会.

孤独企鹅的假朋友

- 温克人 - 东西
文:雨果·盖伊(Hugo Gye). 译者:哈土鳖科维奇 [email protected]. 尊重他人劳动成果,转帖时请注明来源东西网dongxi.net、原作者署名、及译者笔名. 企鹅也许无法适应沙地,毕竟南极的冰天雪地与洒满阳光的沙滩有着很大区别. 但这几只企鹅在沙滩上却有了如家一般的感觉 – 这儿有很多企鹅形状的沙雕陪伴它们.

网易的朋友来相会

- 夜の猫 - 新闻跟帖局
核心提示:6月7日,媒体将“大肚女孩”苏田田因患子宫间质肉瘤陷入困境一事刊登报道,随后各界通过红十字会向其捐款五万余元,但直至8月16日苏田田的母亲才接到签收善款通知,而苏田田已于7月11日去世. 红会解释称,因当时县里正在换届,卫生局局长没有到位,无人签字转款. [查看原文]好友向您推荐这条跟贴.