Rust 입문
[Rust] Array (배열)
바로크냥
2022. 9. 27. 22:11
1. Array (배열)
Rust의 배열은 크기가 고정 되어 있는 시퀀스 데이터 타입입니다.
다음과 같이 선언합니다.
let arr1 : [int32; 5] = [1,2,3,4,5];
let name : [type; length] = […] 형식을 사용합니다.
[ type ; length ]에서 타입 선언 뒤에 “;”이 붙는 것에 주의 하십시오. “:”이 아닙니다.
배열의 요소를 변형 하면서 사용하려면 mut 키워드를 같이 사용합니다.
let mut arr1 : [int32; 5] = [1,2,3,4,5];
물론mut 키워드를 사용한다고 해서 배열의 길이를 바꿀 수는 없습니다.
배열을 선언할 때 타입 선언 부분을 생략할 수도 있습니다.
let mut arr2 = [1,2,3,4,5];
배열의 요소는 반드시 동일한 데이터 타입 이어야 합니다.
다른 데이터 타입이 있다면 에러가 발생합니다.
let mut arr3 = [1,2,3,"hi",5];
// 에러 메시지
let arr2 = [1,2,3,"hi",5];
| ^^^^ expected integer, found `&str`
배열의 요소값을 사용할 때는 인덱스를 사용합니다.
다른 대부분의 언어처럼 [ ]을 사용합니다.
인덱스는 0부터 시작합니다.
let mut arr2 = [1,2,3,4,5];
println!("{} {}", arr2[0], arr2[2]);
// 출력
1 3
요소값을 바꿀 수도 있습니다. 물론 mut 키워드를 사용해서 선언한 배열에서만 가능합니다.
let mut arr2 = [1,2,3,4,5];
arr2[1] = 10;
println!("{:?}", arr2);
// 출력
[1, 10, 3, 4, 5]
출력에서 배열의 두 번째 요소가 10으로 바뀐 것을 확인 할 수 있습니다.
참고로, 위에서 println!(“{:?}”, arr2)에 사용된 ‘:?’가 없으면 에러가 발생합니다.
이처럼 formatter 없이 출력 하면 에러가 발생 하는 경우가 있습니다.
println!("{}", arr2);
| ^^^^ `[{integer}; 5]` cannot be formatted with the default formatter
숫자나, 문자열이 아닌 배열이나 객체를 출력 시킬 때는 포맷터를 사용한다고 기억 합시다.
반응형