brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Jul 18. 2024

Rust : collect()

#Arr2Vec #collect함수

1부터 100까지 숫자로 구성된 배열을 만들 때,

생각보다 귀찮은 방식을 사용해야 한다.



let mut x = {

        let mut arr = [0; 75];

        for i in 1..75 {

            arr[i] = i + 1;

        }

        arr

    };



이러면 이제 Rust 쓰기 싫어지고 왜 쓰는지 또 이유를 찾아야 하고...


이럴땐 Vec 타입의 iter 를 사용하면 된다.



let mut x: Vec<isize> = (1..=75).collect()


하면 끝!

참고로 .collect()는 범위(1 ~ 75)를 반복 가능한(iterable) 컬렉션으로 변환한다.


배열을 꼭 써야한다면(이런 경우 거의 없지만...)


let mut x2: Box<[isize]> = x.clone().into_boxed_slice()


Box 를 사용해서 slice 형태로 받아서 사용할 수는 있다고 한다.


이게 타입을 맞추는 작업이 좀 중요하다. (타입 추론도 물론 가능하지만...)

자바보다 100배 체감상 난이도가 느껴진다.

익숙해지는게 가장 빠른 길일 듯 하다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari