Function std::slice::range[][src]

pub fn range<R>(range: R, bounds: RangeTo<usize>) -> Range<usize>
Notable traits for Range<A>
impl<A> Iterator for Range<A> where
    A: Step
type Item = A;
where
    R: RangeBounds<usize>, 
🔬 This is a nightly-only experimental API. (slice_range #76393)
Expand description

执行范围的边界检查。

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

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

对于给定范围的切片,返回的 Range 可以安全地传递到 slice::get_uncheckedslice::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