Appearance
我们在《Rust 的基本语法》当中使用了一种在其他语言中并不太常见的语法:0..101。
这种语法叫做范围表达式。通常,我们使用半开和全闭范围,在这两个基础上,还衍生出了:RangeFrom、RangeTo、RangeToInclusive、RangeFull 四个变体:
Range (半开范围)
<start>..<end>
半开范围,从 start 到 end,不包括 end (即 )
RangeInclusive (全闭范围)
<start>..=<end>
全闭范围,从 start 到 end,包括 end (即 )
RangeFrom
<start>..
RangeFrom 不提供 end 参数,而是从 start 到序列结尾[1]。(即 )
RangeTo
..<end>
RangeTo 和 RangeFrom 相反,RangeTo 不提供 start 参数,而是从序列开头[2]到 end,但不包括 end。(即 )
RangeToInclusive
..=<end>
RangeToInclusive 和 RangeTo 一样不提供 start 参数,而是从序列开头[2:1]到 end,并且包括 end。(即 )
RangeFull
..
RangeFull 会从序列开头[2:2]到序列结尾[1:1],并且包括最后一个
案例
rust
fn main() {
let range = 0..5; // [0, 5)
let range_inclusive = 0..=10; // [0, 10]
let range_from = 5..; // [5, i32::MAX]
let range_to = ..10; // [i32::MIN, 10)
let range_to_inclusive = ..=10; // [i32::MIN, 10]
let range_full = ..; // [i32::MIN, i32::MAX]
}