I guess, the solution will not work for -1 … -10

On Feb 1, 2013, at 9:37 PM, Simon Sapin <[email protected]> wrote:

> Le 01/02/2013 13:28, Alexander Stavonin a écrit :
>> Thanks, it better than nothing, but… It works only for i++; how can I
>> write /i += 2 /or /i--/?
> 
> The range() function is very simple:
> 
> https://github.com/mozilla/rust/blob/release-0.5/src/libcore/int-template.rs#L48
> 
> #[inline(always)]
> /// Iterate over the range [`lo`..`hi`)
> pub fn range(lo: T, hi: T, it: fn(T) -> bool) {
>    let mut i = lo;
>    while i < hi {
>        if !it(i) { break }
>        i += 1 as T;
>    }
> }
> 
> 
> It’s quite easy to write your own variant with a "step" parameter:
> 
> pub pure fn range_step(lo: int, hi: int, step: int,
>                       it: fn(int) -> bool) {
>    let mut i = lo;
>    while i < hi {
>        if !it(i) { break }
>        i += step;
>    }
> }
> 
> 
> Maybe range_step() could be added to libcore?
> 
> -- 
> Simon Sapin

_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to