14-区间表达式
区间表达式 — The Rust Reference
1分钟内可阅读完
译文 · 基于 The Rust Reference
原文链接: https://doc.rust-lang.org/reference/expressions/range-expr.html
r[expr.range]
区间表达式
r[expr.range.syntax]
RangeExpression ->
RangeExpr
| RangeFromExpr
| RangeToExpr
| RangeFullExpr
| RangeInclusiveExpr
| RangeToInclusiveExpr
RangeExpr -> Expression `..` Expression
RangeFromExpr -> Expression `..`
RangeToExpr -> `..` Expression
RangeFullExpr -> `..`
RangeInclusiveExpr -> Expression `..=` Expression
RangeToInclusiveExpr -> `..=` Expression
r[expr.range.behavior]
.. 和 ..= 运算符会根据下表构造 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 |
示例:
| |
r[expr.range.equivalence] 下列表达式等价。
| |
r[expr.range.for]
区间可用于 for 循环:
| |