Groovy range 是对象

由于每一个range都是一个对象,所以可以直接在每个range对象上进行方法调用,最突出的方法是each,这个方法为range中的每一个元素执行闭包,还有就是contains,这个方法用来检查一个值是否在range中。

作为一个顶级类,range也可以通过实现一个isCase方法进行操作符重写(参考3.3节),这个方法的意思与contains一样,也就意味着,可以像grep过滤器一样在switch语句中使用range,如列表4.2所显示的这样。

(2)是range对象使用grep方法的好例子:midage范围作为一个参数传递给grep方法。

如(1)所示是我们在业务领域中经常看到的使用range进行分类的例子,不同范围的资产分配不同的利率,基于不同的费用收取不同的佣金和基于一个业务范围定义工资红利,尽管技术上可以使用一个函数,业务上使用一个范围。当在软件中包括业务模块的时候,通过range进行分类是十分便利的。