视频网站 界面设计,wordpress装多个博客,百度联盟做网站赚钱吗,佛山免费建站找哪家2019独角兽企业重金招聘Python工程师标准 list转换为数组 List list [a,b,c,d]
def strs list as String[]
println strs[0] 使用了Groovy语言#xff0c;就能时不时的感受到Groovy语言在编码风格上与Java语言的不同。当然#xff0c;我们首先感受到的可能就… 2019独角兽企业重金招聘Python工程师标准 list转换为数组 List list [a,b,c,d]
def strs list as String[]
println strs[0] 使用了Groovy语言就能时不时的感受到Groovy语言在编码风格上与Java语言的不同。当然我们首先感受到的可能就是在Groovy语言中无处不在的闭包其中最最常用的是each方法。 比如下面的代码段是我们在Java语言中常用的遍历风格 for(int i0;ilist.size();i)
{System.out.println(list.get(i));
} 但是我们在Groovy语言中常用的遍历风格却是如下的代码段 list.each{ println it } 这种风格已经让我强烈感受到了Groovy语言编码的快捷性。但是我们对于长期使用Java语言的我们来说Groovy语言在许许多多的地方表现出它的风格但我们由于使用Java语言的惯性未必能很自然的使用它们。 比如我们有如下的一个集合对象 def list [1,2,3,4] 现在我们需要得到一个集合对象它的每一个元素是上面的list对象的每一个元素的两倍。我们从Java语言过来的人很容易写出如下的代码来 def result [] list.each{ result it*2 } 我们可能会洋洋自得我们的each方法使用的不错代码比起Java语言来简单得多了。但实际上Groovy语言为我们准备了更加简单的方法这就是Groovy语言风格的集合方法--collect方法。 def result list.collect{it*2} 可以看到只有一个语句行就代替了上面的三个语句行。这就是我们Groovy风格的代码同样的方法还有collect(Collection collection, Closure closure)collectAll(Closure closure)和collectAll(Collection collection, Closure closure)。 还是上面的list对象比如我们想找出该对象中所有大于2的元素来我们的Java语言风格应该是这样的 def result [] list.each{ if(it2) result it } println result 但是这种过滤在Groovy语言中同样可以找到集合方法来代替它使得代码更加具有Groovy语言风格 def result list.grep{ it 2 } println result 是的在Groovy语言中我们对集合元素的过滤一般都使用grep方法这样的代码更加具有Groovy风格一些。具有同样一些功能的方法还有find(Closure closure)findAll(Closure closure)。 在Java语言中对List的遍历方法是万能的我们要做的一切功能都必须从遍历方法开始。比如我们想知道上面的list对象是否所有的元素都大于0。在Java语言中我们会写出如下的代码 boolean isMoreThanZero true; for(int i in list) { if(i0) { isMoreThanZero false; break; } } println isMoreThanZero 在Groovy语言中同样有Groovy风格的方法来帮我们省掉一大段的代码这就是every方法 def isMoreThanZero list.every{ it0 } println isMoreThanZero 同样类型的方法还有any(Closure closure)any()和every()。 除了上面的一些Groovy风格的代码我们还有难度更大一些的Groovy语言风格的方法比如注入方法--inject。 比如我们想把list对象的所有元素相加起来然后再和10求和。Java语言的编码风格看起来如下 def count 10 list.each{ countit } println count 但Groovy语言风格的代码看起来如下所示 def count list.inject(10){result,it- resultit }; println count 类似这样的注入方法Groovy语言还有集合方法count(Object value)。 还有一个集合方法对于字符串特别好用。比如我们想把上面的list对象的所有元素连接成一个字符串。Java语言的风格是这样的 def result list.each{ resultit } println result Groovy语言风格的代码则是如下 def result list.join() println result 好了就举出这么多了都是一些集合方法配合闭包来使用而形成的Groovy语言风格的代码写起来既快捷又简约体现出Groovy语言作为动态语言的特点来。 转载于:https://my.oschina.net/sfshine/blog/1939582