Groovy 使用 ranges

考虑一下经常写的循环代码:for (int i=0; i<upperBound; i++){ // do something with i } 我们大多数时候做了上千次这样的代码,它太平常了,以至于我们几乎不思考它,现在有机会改进它了,这些代码告诉你将做什么或者怎么样做?

仔细的看看变量、条件和增量,可以看到循环是从0开始的并且没有到达upperBound值的时候进行的,如果不考虑循环体中的i,我们必须进行怎么样的描述呢?

紧接着,考虑一下你经常写的条件代码:[code]if (x >= 0 && x <= upperBound) {
// do something with x

}
[/code]相同的事情发生了:为了懂得计算机在做什么,我们必须认真的检查代码。变量x必须 在0和一个upperBound之间的时候,代码块才被执行,这里包括了upperBound。
我们不是说使用这样的语法是错误的,不是说不能使用C风格的循环。

作为有数年工作经验的程序员,很难做出这样的结论,重要的是,range能使用更少的表达式做相同的事情。

通过groovy的range能简单的展现代码的意思,一个范围(range)有一个左边界和一个右边界,开发者可以为range中的每一个元素做一些工作,实际上就是迭代range,你能确定一个条件元素是否落在一个range范围之内,换句话说,一个range是一个间隔加上如何移动这个间隔的策略。

正在介绍的是groovy的新概念ranges,groovy通过range扩展了你在代码中表述自己思想的方式。