当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust RangeTo用法及代码示例


本文简要介绍rust语言中 Struct std::ops::RangeTo 的用法。

用法

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

仅限定在上方的范围(..end)。

RangeTo ..end 包含所有带有 x < end 的值。它不能用作 Iterator ,因为它没有起点。

例子

..end 语法是 RangeTo

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

它没有 IntoIterator 实现,因此您不能直接在for 循环中使用它。这不会编译:

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

当用作 slicing index 时,RangeTo 生成 end 指示的索引之前的所有数组元素的切片。

let arr = [0, 1, 2, 3, 4];
assert_eq!(arr[ ..  ], [0, 1, 2, 3, 4]);
assert_eq!(arr[ .. 3], [0, 1, 2      ]); // This is a `RangeTo`
assert_eq!(arr[ ..=3], [0, 1, 2, 3   ]);
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::RangeTo。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。