HIT해

[Swift 기초문법 - 14] 딕셔너리 본문

Swift/Swift 기초문법

[Swift 기초문법 - 14] 딕셔너리

힛해 2024. 7. 12. 00:16
728x90

Swift에서 딕셔너리(Dictionary)는 키와 값의 쌍으로 데이터를 저장하는 컬렉션 타입이다.

딕셔너리는 순서가 없으며, 각 키는 고유해야 한다. 키를 통해 빠르게 값을 검색할 수 있어 매우 유용하다!

딕셔너리 생성

딕셔너리는 여러 가지 방법으로 생성할 수 있다. 가장 기본적인 방법은 대괄호 []를 사용하여 키-값 쌍을 정의하는 것이다.

var emptyDict: [String: Int] = [:] // 빈 딕셔너리
var scores: [String: Int] = ["Alice": 90, "Bob": 85, "Charlie": 95] // 초기값 설정

 

타입 추론을 통해 타입을 생략할 수도 있다.

var scores = ["Alice": 90, "Bob": 85, "Charlie": 95]

딕셔너리 접근 및 수정

딕셔너리에서 값을 접근하거나 수정하려면 키를 사용하면 된다. 키가 존재하지 않으면 nil을 반환한다.

if let aliceScore = scores["Alice"] {
    print("Alice의 점수는 \(aliceScore)입니다.")
} else {
    print("Alice의 점수를 찾을 수 없습니다.")
}

scores["Alice"] = 95 // 값 수정
scores["Dave"] = 88 // 새로운 키-값 쌍 추가

 

이때 nil이 아닌 기본값을 반환하게 할 수도 있다

let aliceScore = scores["Empty" , default: "엘리스 등장인물"]

 

aliceScore는 실제 딕셔너리에 없는 값이라도 Empty의 키와 엘리스 등장인물 이라는 값을 가지게 된다!

 

딕셔너리 순회

딕셔너리를 순회하려면 for-in 루프를 사용한다. 키와 값을 동시에 접근할 수 있다.

for (name, score) in scores {
    print("\\(name)의 점수는 \\(score)입니다.")
}

키나 값만 순회할 수도 있다.

for name in scores.keys {
    print("학생 이름: \\(name)")
}

for score in scores.values {
    print("점수: \\(score)")
}

딕셔너리의 주요 기능

키-값 쌍 추가

 

딕셔너리 값을 추가하는 것은 간단하다.

딕셔너리명.updateValue(값, forkey: "키명")을 해주면 되는데 이때 키값이 있으면 수정 없으면 추가가 된다!

score.updateValue(95 , forkey : "math")

 

키-값 쌍 제거

특정 키-값 쌍을 제거하려면 removeValue(forKey:) 메서드를 사용한다.

scores.removeValue(forKey: "Bob")// "Bob"의 키-값 쌍 제거

또는 키를 nil로 설정할 수도 있다.

scores["Bob"] = nil// "Bob"의 키-값 쌍 제거

딕셔너리 초기화

딕셔너리를 초기화하거나 비울 때는 removeAll() 메서드를 사용한다.

scores.removeAll()// 모든 키-값 쌍 제거

딕셔너리 합치기

두 개의 딕셔너리를 합칠 때는 merge(_:uniquingKeysWith:) 메서드를 사용한다. 충돌이 발생할 경우 어떻게 처리할지 클로저를 통해 정의할 수 있다.

var additionalScores = ["Eve": 92, "Frank": 80]
scores.merge(additionalScores) { (current, new) in new }

결론

Swift의 딕셔너리는 키와 값의 쌍으로 데이터를 효율적으로 관리할 수 있는 강력한 자료구조이다.

딕셔너리를 사용하면 데이터를 빠르게 검색하고, 추가 및 수정할 수 있어 매우 유용하다.