Range expressions - The Rust Reference (original) (raw)
The Rust Reference
Range expressions
Syntax
RangeExpression :
RangeExpr
| RangeFromExpr
| RangeToExpr
| RangeFullExpr
| RangeInclusiveExpr
| RangeToInclusiveExprRangeExpr :
Expression..
ExpressionRangeFromExpr :
Expression..
RangeToExpr :
..
ExpressionRangeFullExpr :
..
RangeInclusiveExpr :
Expression..=
ExpressionRangeToInclusiveExpr :
..=
Expression
The ..
and ..=
operators will construct an object of one of the std::ops::Range
(or core::ops::Range
) variants, according to the following table:
Examples:
#![allow(unused)]
fn main() {
1..2; // std::ops::Range
3..; // std::ops::RangeFrom
..4; // std::ops::RangeTo
..; // std::ops::RangeFull
5..=6; // std::ops::RangeInclusive
..=7; // std::ops::RangeToInclusive
}
The following expressions are equivalent.
#![allow(unused)]
fn main() {
let x = std::ops::Range {start: 0, end: 10};
let y = 0..10;
assert_eq!(x, y);
}
Ranges can be used in for
loops:
#![allow(unused)]
fn main() {
for i in 1..11 {
println!("{}", i);
}
}