range — 범위의 경계 검사

range — 범위의 경계 검사

range는 범위(bounds)의 경계 검사를 수행해, 대상이 경계를 벗어나면 패닉을 일으키는 기존 인덱싱 동작과 달리 검사된 결과를 반환하는 함수예요. nightly 전용 실험 API(slice_range, #76393)이에요.

출처: Rust 공식 문서

본문

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

이 함수는 슬라이스에 대한 Index::index와 비슷하지만, 슬라이스 대신 경계(bounds)를 검사해요. 범위가 경계를 벗어나면 패닉을 일으킬 수 있어요.

let slice = [0, 1, 2, 3];
let r = std::slice::range(1..3, ..slice.len());
assert_eq!(r, 1..3);

일반적으로 slice.get(range) 같은 안전한 메서드보다 직접 사용할 일은 적어요.

참고: 같은 이름의 std::ops::Range 구조체(반열린 범위 start..end)와는 다른 항목이에요. 이 문서는 경계 검사를 수행하는 slice::range 함수를 다룹니다.

더 알아보기 (Learn more)