加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy Tip 12 Range的用法

发布时间:2020-12-14 16:59:52 所属栏目:大数据 来源:网络整理
导读:???????????????????????????? Groovy Tip 12 Range的用法 ? ? Groovy语言的Range的用法值得一说,因此还是把它单独提出来说一说。Range作为Groovy语言的一种数据类型,其实非常简单。Range类型数据的标志是“ .. ”,形式如下: ??? def range = 1 .. 10 ?
???????????????????????????? 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]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读