Swift 입문 | 배열과 사전 | 사전(Dictionary)

배열은 단순히 값을 순서대로 정렬하여 관리하는 것만으로, 저장된 값을 인덱스 숫자로 이용해서 꺼냈다. 때로는, 이 숫자보다는 이름으로 관리하는 편이 좋은 경우도 있다.

그런 경우에 사용되는 것이 “사전 (Dictionary)“이다. 사전은 “키"라는 값을 사용하여 관리한다. 각각의 값은 인덱스 번호 대신에 키가 붙여져 있고, 키를 사용하여 값을 제거하거나 변경하는 것이다.

사전 만들기

var 변수 : [유형 : 유형] = [유형 : 유형]()
var 변수 : [유형 : 유형] = [키1 : 값1, 키2 : 값2, ...]

값에 액세스

변수 = 사전 [키]
사전 다음 키 = 값

for-in 의한 반복

for (변수1, 변수2) in 사전 {
    ...... 반복 처리 ......
}

사전은 []로 두 가지 데이터 유형을 지정한다. 이는 키와 값의 유형을 지정한다. 예를 들어, String의 키에 Int 형의 값을 보관한다면, [String : Int]와 같이 지정한다. 그대로, [String : Int]()를 변수에 할당하면 값이 아무것도 없는 공백의 사전이 만들어 진다.

사전는 배열과 달리, 최초에 정해진 수의 저장 공간를 준비할 필요는 없다. 키를 사용하여 값을 저장하 면, 그 키가 사전에 추가된다(기존에 같은 키가 있으면, 그 값이 변경된다).

for-in는, 배열과 사용 방법이 조금 다르다. for 후에 (변수1, 변수2)와 같이 튜플 변수를 제공한다. 이렇게하면 사전에서 검색한 요소의 키와 값을 각각의 변수에 할당한다.

아래에 실제 사용 예제를 보도록 하자.

let data:[String:Int] = ["국어":98,"수학":76,"영어":54]
var total = 0
for (key, val) in data {
    total += val
    println("add \(key)")
}
println("Total: \(total)")

3과목의 점수를 사전에 모와서, 그것로 부터 요소를 꺼내서 합계를 계산한다. 실행하면 값을 꺼낼 때마다 “add 〇〇"과 키가 출력되고, 마지막으로 총 합계가 표시된다.