Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

Jupyo's Daily Story

콜렉션 타입(Collection Type) - 딕셔너리(Dictionary) 본문

Swift

콜렉션 타입(Collection Type) - 딕셔너리(Dictionary)

JangJupyo 2024. 10. 8. 11:56
728x90
반응형

딕셔너리(Dictionary)는 순서와 상관없이 콜렉션에 같은 타입의 키(Key)와 같은 타입의 값(Value)를 저장합니다. 각 값은 딕셔너리 내부에서 값에 대한 식별자로 동작하는 유니크한 키와 조합됩니다. 배열의 아이템과 다르게 딕셔너리의 아이템은 특정 순서를 가지고 있지 않습니다. 특정 단어를 찾기위해 사전을 찾는 방법과 같이 식별자를 기준으로 값을 찾을 때 딕셔너리를 사용합니다.

 

딕셔너리 생성

 

빈 딕셔너리 생성

배열처럼 초기화 구문을 사용하여 타입을 포함한 빈 딕셔너리를 생성할 수 있습니다.

var namesOfIntegers = [Int: String]()
var countsOfAnimals: [String: Int] = [:]

 

  • namesOfintegers의 키는 Int 타입이고, 값은 String 타입입니다.
  • countsOfAnimals의 키는 String 타입이고, 값은 Int 타입입니다.

 

딕셔너리 리터럴(Dictionary Literal)

배열 리터럴과 비슷한 구문을 가진 딕셔너리 리터럴로 초기화할 수 있습니다.

var airports = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]

 

  • [String: String] 타입 지정하지 않아도 키와 값을 통해 자동 타입 유추가 가능합니다.

 

딕셔너리 접근과 수정

 

딕셔너리 값 접근

특정 키로 값을 검색할 때 dictionary[key]를 사용합니다. 만약 키가 없으면 nil 이 반환됩니다. 옵셔널 바인딩을 통해 값을 안전하게 처리할 수 있습니다.

var countryCodes = ["KR": "Korea", "US": "United States"]
if let country = countryCodes["KR"] {
    print("Country: \(country)") // "Country: Korea"
}

 

딕셔너리 값 추가 및 업데이트

새로운 키-값 쌍을 추가하거나 기존의 키의 값을 수정하려면 아래와 같이 사용합니다.

countryCodes["KR"] = "South Korea"	// 기존 키의 값 수정
countryCodes["JP"] = "Japan"		// 새로운 키-값 추가

 

 

updateValue(_:forKey:) 메서드를 사용하여 값을 업데이트할 수도 있습니다.

let oldValue = countryCodes.updateValue("Republic of Korea", forKey: "KR")
print(oldValue)             // "South Korea"
print(countryCodes["KR"])   // "Republic of Korea"
  • updateValue(_:forKey:) 메서드는 업데이트한 키의 변경 이전의 값을 반환합니다.

 

딕셔너리 값 삭제

제거할 특정 키의 값을 nil 로 변경하면 제거할 수 있습니다.

countryCodes["JP"] = nil	// "JP" 키-값 삭제

 

removeValue(forKey:) 메서드를 사용하여 제거할 수도 있습니다.

if let removedValue = countryCodes.removeValue(forKey: "KR") {
    print("Removed: \(removedValue)") // "Removed: Republic of Korea"
}
  • removeValue(forKey:) 메서드는 제거한 키의 값을 반환합니다.

 

딕셔너리 반복

for-in 을 사용하여 딕셔너리의 모든 키와 값에 반복적으로 접근할 수 있습니다.

for (code, country) in countryCodes {
    print("\(code): \(country)")
}

 

키와 값 컬렉션 접근

  • keys: 딕셔너리의 모든 키 배열을 반환합니다.
  • values: 딕셔너리의 모든 값 배열을 반환합니다.
let codes = Array(countryCodes.keys) // ["KR", "US"]
let countries = Array(countryCodes.values) // ["Korea", "United States"]
반응형