Rust - 배열 나누기, 자르기 (split_at, slice)

러스트에서 하나의 배열을 2개 이상의 배열로 분리하는 방법에 대해서 알아보겠습니다.

1. split_at()을 이용한 방법

arr.split_at(mid)는 arr에서 [0, mid)(Index 0은 포함하고 mid는 포함하지 않는) 범위로 배열을 잘라서 두개로 나눕니다.

  • arr의 데이터 변경은 없음
  • 분할된 배열은 left와 rigth로 할당됨
fn main() {
    let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

    let (left, right) = arr.split_at(arr.len() / 2);
    println!("arr: {:?}", arr);
    println!("left: {:?}", left);
    println!("right: {:?}", right);
}

Output:

arr: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
left: [1, 2, 3, 4, 5]
right: [6, 7, 8, 9, 10]

2. slice를 이용한 방법

&arr[0..5]는 arr에서 [0, 5) 범위(Index 0은 포함하고 5는 포함하지 않는)의 요소들을 잘라서 배열로 리턴합니다.

아래와 같이 배열을 둘로 나눌 수 있습니다.

fn main() {
    let mut arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

    let left = &arr[0..5];
    let right = &arr[5..10];
    println!("arr: {:?}", arr);
    println!("left: {:?}", left);
    println!("right: {:?}", right);
}

Output:

arr: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
left: [1, 2, 3, 4, 5]
right: [6, 7, 8, 9, 10]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha