러스트에서 배열 2개를 하나의 배열로 합치는 방법에 대해서 알아보겠습니다.
1. concat()을 이용한 방법
아래와 같이 두개 배열을 새로운 배열로 전달하고 concat()
을 호출하면, 두 배열의 요소들을 모두 포함하는 벡터가 생성됩니다.
fn main() {
let arr1: [i32; 3] = [1, 2, 3];
let arr2: [i32; 3] = [4, 5, 6];
let v: Vec<i32> = [arr1, arr2].concat();
println!("{:?}", v);
}
Output:
[1, 2, 3, 4, 5, 6]
암시적 타입 사용
위의 코드는 일부러 명시적으로 타입을 입력하였는데, 아래와 같이 타입을 입력하지 않아도 됩니다.
fn main() {
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let v = [arr1, arr2].concat();
println!("{:?}", v);
}
Output:
[1, 2, 3, 4, 5, 6]
벡터를 배열로 변경
벡터를 배열로 변경하고 싶다면 아래와 같이 as_slice()
와 try_into()
등을 사용하여 변환할 수 있습니다.
- 리턴 값을 받는 변수의 타입은 명시적으로 입력해야 함
- 벡터를 배열로 변환할 때 암시적 타입으로 변환되는 방법은 못봄
fn main() {
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let v = [arr1, arr2].concat();
println!("{:?}", v);
let arr3: [i32; 6] = v.as_slice().try_into().unwrap();
println!("{:?}", arr3);
}
Output:
[1, 2, 3, 4, 5, 6]
2. collect()를 이용한 방법
아래와 같이 iter(), copied(), collect() 등을 사용하여 두개의 배열을 하나로 연결할 수 있습니다.
- 합쳐진 배열은 벡터 타입으로 리턴됨
- 벡터를 배열로 변경하려면 위의 예제와 동일하게 변환
fn main() {
let arr1: [i32; 3] = [1, 2, 3];
let arr2: [i32; 3] = [4, 5, 6];
let v = arr1.iter().copied().chain(arr2.iter().copied()).collect::<Vec<i32>>();
println!("{:?}", v);
}
Output:
[1, 2, 3, 4, 5, 6]
Loading script...
Related Posts
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - Integer를 String으로 변환
- Rust - Float를 String으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 HashSet으로 변환
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환