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


Rust range用法及代码示例


本文简要介绍rust语言中 Function core::slice::range 的用法。

用法

pub fn range<R>(range: R, bounds: RangeTo<usize>) -> Range<usize> where    R: RangeBounds<usize>,

执行范围的边界检查。

此方法类似于切片的 Index::index ,但它返回一个等效于range Range 。您可以使用此方法将任何范围转换为 startend 值。

bounds 是用于边界检查的切片范围。它应该是一个以切片长度结束的 RangeTo 范围。

对于具有给定范围的切片,返回的 Range 可以安全地传递给 slice::get_unchecked slice::get_unchecked_mut

Panics

如果range 越界,就会出现Panics。

例子

#![feature(slice_range)]

use std::slice;

let v = [10, 40, 30];
assert_eq!(1..2, slice::range(1..2, ..v.len()));
assert_eq!(0..2, slice::range(..2, ..v.len()));
assert_eq!(1..3, slice::range(1.., ..v.len()));

Index::index Panics时的Panics:

#![feature(slice_range)]

use std::slice;

slice::range(2..1, ..3);
#![feature(slice_range)]

use std::slice;

slice::range(1..4, ..3);
#![feature(slice_range)]

use std::slice;

slice::range(1..=usize::MAX, ..3);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function core::slice::range。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。