`
lanxiaoshuang
  • 浏览: 6554 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Groovy笔记3

阅读更多
一个range就是一个区间和一个关于如何遍历该区间的策略
range的定义:在左边界和右边界之间含2个点号就是一个range left..right
双点号区间操作符优先级很低所以经常需要使用小括号(left..right)
另外不包含右边界的range定义如下(left..<right)


因为range是对象所以可以传递他们可以调用他们的方法
range的each和contains方法是最突出的


只要数据类型满足如下2个条件该数据类型就可以和range一起使用:
1)实现了next和previous方法,也就是overrides操作符++和--
2)实现了java.lang.Comparable接口,也就是实现了compareTo方法或者overrides操作符<=>


list的定义:[],默认情况下list是java.util.ArrayList类型
list中的putAt和getAt方法支持下标运算
list中的对象不一定是同一类型的


map的定义:[:],默认情况下map是java.util.HashMap类型
Groovy认为在小括号中的标识符是表达式,例如:
def x = 'a'
assert ['x':1] == [x:1]
assert ['a':1] == [(x):1]
这里第二个assert语句会先对x求值.
三种访问map的方法:
1)def value = map[key]
2)def value = map.key
3)def value = map.get(key) or map.get(key,default)
map的两种赋值方法:
1)map[key] = value
2)map.key = value


map的each方法有2中使用closure的方式:
1)给closure传一个参数则该参数代表entry
2)给closure传两个参数则第一个参数代表key第二个参数代表value


add addAll remove removeAll retainAll这些方法会修改调用他们的对象但是不会返回一个集合
grep findAll collect这些方法不会修改调用他们的对象但是会返回一个集合
分享到:
评论
3 楼 wwd224 2007-07-27  
大家顶呀
2 楼 wwd224 2007-07-27  
就一个字
1 楼 wwd224 2007-07-27  
   

相关推荐

Global site tag (gtag.js) - Google Analytics