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

숫자나, 문자열이 아닌 배열이나 객체를 출력 시킬 때는 포맷터 사용한다고 기억 합시다.

 

 
반응형