Function alloc::slice::range [−][src]
pub fn range<R>(range: R, bounds: RangeTo<usize>) -> Range<usize> where
R: RangeBounds<usize>, Expand description
执行范围的边界检查。
对于切片,此方法类似于 Index::index,但是它返回的 Range 等效于 range。
您可以使用此方法将任何范围转换为 start 和 end 值。
bounds 是用于边界检查的切片范围。
它应该是 RangeTo 范围,以切片的长度结尾。
对于给定范围的切片,返回的 Range 可以安全地传递到 slice::get_unchecked 和 slice::get_unchecked_mut。
Panics
如果 range 越界,就会出现 panics。
Examples
#![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()));Run当 Index::index 将为 panic 时的 panics:
ⓘ
#![feature(slice_range)]
use std::slice;
slice::range(2..1, ..3);Runⓘ
#![feature(slice_range)]
use std::slice;
slice::range(1..4, ..3);Runⓘ
#![feature(slice_range)]
use std::slice;
slice::range(1..=usize::MAX, ..3);Run