當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust RangeToInclusive用法及代碼示例


本文簡要介紹rust語言中 Struct std::ops::RangeToInclusive 的用法。

用法

pub struct RangeToInclusive<Idx> {
    pub end: Idx,
}

僅包含在上方 (..=end) 的範圍。

RangeToInclusive ..=end 包含所有帶有 x <= end 的值。它不能用作 Iterator ,因為它沒有起點。

例子

..=end 語法是 RangeToInclusive

assert_eq!((..=5), std::ops::RangeToInclusive{ end: 5 });

它沒有 IntoIterator 實現,因此您不能直接在for 循環中使用它。這不會編譯:

// error[E0277]: the trait bound `std::ops::RangeToInclusive<{integer}>:
// std::iter::Iterator` is not satisfied
for i in ..=5 {
    // ...
}

當用作 slicing index 時,RangeToInclusive 生成所有數組元素的切片,直到並包括 end 指示的索引。

let arr = [0, 1, 2, 3, 4];
assert_eq!(arr[ ..  ], [0, 1, 2, 3, 4]);
assert_eq!(arr[ .. 3], [0, 1, 2      ]);
assert_eq!(arr[ ..=3], [0, 1, 2, 3   ]); // This is a `RangeToInclusive`
assert_eq!(arr[1..  ], [   1, 2, 3, 4]);
assert_eq!(arr[1.. 3], [   1, 2      ]);
assert_eq!(arr[1..=3], [   1, 2, 3   ]);

字段

end: Idx

範圍的上限(含)

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Struct std::ops::RangeToInclusive。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。