Groovy Tip 12 Range的用法

                             Groovy Tip 12 Range的用法
 
 
Groovy语言的Range的用法值得一说,因此还是把它单独提出来说一说。Range作为Groovy语言的一种数据类型,其实非常简单。Range类型数据的标志是“ ..”,形式如下:
    def range = 1 .. 10
 
Range类型和集合类型一样,可以使用那些使用于集合对象的通用方法,如“each”、“find”、“any”和“every”等方法。如:
       range. each {
          
           print "${it} "
    }
 
上面的代码的打印结果为:
1 2 3 4 5 6 7 8 9 10
 
可以看到“ .. ”符号所表示范围包括了首尾,如果不包括尾部,可以编码如下:
       def range = 1 ..< 10
       range. each {
          
           print "${it} "
    }
 
结果为:
1 2 3 4 5 6 7 8 9
 
除了那些使用于集合类的通用方法,还有如下的一些方法,如:
       def range = 1 .. 10
      
       println range.contains( 5 )
      
       println range. size ()
       
       println range.from
      
    println range.to
 
结果为:
true
10
1
10
 
除了数字可以组织 Range 类型,还有其他一些数据也可以组织 Range 类型,如:
       ( 'a' .. 'r' ). each {
   
           print "${it},"
    }
 
结果为:
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,
 
一般来说,集合类对象我们都直接使用 each 方法,但有时候 each 方法也完全好用,请看下面的例子:
       def list = [ 3 , 45 , 2 , 34 , 8 , 98 , 76 ]
      
       ( 0 ..<list. size ()- 1 ). each {
           i ->
              (i+ 1 ..<list. size ()). each {
                  j ->
                     if (list[i]>list[j])
                     {
                         def num = list[i]
                         list[i] = list[j]
                         list[j] = num
                     }
              }
       }
      
    println list
 
 
对于上面的例子,如果你想直接对 list 对象使用 each 方法,就不好实现了。结果为:
[2, 3, 8, 34, 45, 76, 98]
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值