区间表达式
range-expr.md
commit: eb5290329316e96c48c032075f7dbfa56990702b
本章译文最后维护日期:2021-02-21
句法
RangeExpression :
RangeExpr
| RangeFromExpr
| RangeToExpr
| RangeFullExpr
| RangeInclusiveExpr
| RangeToInclusiveExprRangeExpr :
Expression..
ExpressionRangeFromExpr :
Expression..
RangeToExpr :
..
ExpressionRangeFullExpr :
..
RangeInclusiveExpr :
Expression..=
ExpressionRangeToInclusiveExpr :
..=
Expression
..
和 ..=
操作符会根据下表中的规则构造 std::ops::Range
(或 core::ops::Range
)的某一变体类型的对象:
产生式/句法规则 | 句法 | 类型 | 区间语义 |
---|---|---|---|
RangeExpr | start.. end | std::ops::Range | start ≤ x < end |
RangeFromExpr | start.. | std::ops::RangeFrom | start ≤ x |
RangeToExpr | .. end | std::ops::RangeTo | x < end |
RangeFullExpr | .. | std::ops::RangeFull | - |
RangeInclusiveExpr | start..= end | std::ops::RangeInclusive | start ≤ x ≤ end |
RangeToInclusiveExpr | ..= end | std::ops::RangeToInclusive | x ≤ end |
举例:
下面的表达式是等价的。
区间能在 for
循环里使用: