区间表达式
语法
区间表达式 :
区间式
| 区间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::RangeTo | x < 尾 | 
| 区间Full表达式 | .. | std::ops::RangeFull | - | 
| 区间包含表达式 | 头..=尾 | std::ops::RangeInclusive | 头 ≤ x ≤ 尾 | 
| 区间To包含表达式 | ..=尾 | std::ops::RangeToInclusive | x ≤ 尾 | 
示例:
#![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); } }