区间表达式

语法
区间表达式 :
      区间式
   | 区间From表达式
   | 区间To表达式
   | 区间Full表达式
   | 区间包含表达式
   | 区间To包含表达式

区间式 :
   表达式 .. 表达式

区间From表达式 :
   表达式 ..

区间To表达式 :
   .. 表达式

区间Full表达式 :
   ..

区间包含表达式 :
   表达式 ..= 表达式

区间To包含表达式 :
   ..= 表达式

....= 运算符会根据下面的表格构造出一个 std::ops::Range (或 core::ops::Range ) 的变体:

产生式语法类型区间
区间式..std::ops::Range头 ≤ x < 尾
区间From表达式..std::ops::RangeFrom头 ≤ x
区间To表达式..std::ops::RangeTox < 尾
区间Full表达式..std::ops::RangeFull-
区间包含表达式..=std::ops::RangeInclusive头 ≤ x ≤ 尾
区间To包含表达式..=std::ops::RangeToInclusivex ≤ 尾

示例:

#![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
}

以下表达式是等价的。

#![allow(unused)]
fn main() {
let x = std::ops::Range {start: 0, end: 10};
let y = 0..10;

assert_eq!(x, y);
}

区间可以在 for 循环中使用:

#![allow(unused)]
fn main() {
for i in 1..11 {
    println!("{}", i);
}
}