Swift

[Swift] Dictionary(딕셔너리)

느려도천천히 2021. 12. 25. 14:35

Dictionary

고유 키(Key)와 키에 대응 하는 값(Value)을 연결하는 데이터를 저장하는 자료형

[ key: value, ...] 

배열과 마찬가지로 대괄호를 사용하며 키와 값 사이는 콜론으로 구분

특징

1.하나의 키는 하나의 데이터만 연결
2.하나의 딕셔너리에서 키는 중복될 수 없습니다
3.저장할 수 있는 데이터의 타입에는 제한이 없지만, 하나의 딕셔너리에 저장하는 타입은 모두 일치해야됩니다

//선언과 동시에 값 정의
var captical = ["KR": "Seoul", "EN": "London", "FR", "Paris"]

//딕셔너리 참조 방법
captical["KR"] /결과: Seoul
...

//선언만(빈 딕셔너리)
Dictionary<키의 타입, 값의타입>()
Ex)
Dictionary<String, Int>()
//간결하게
[키타입: 값 타입]()
Ex)
[String: Int]()

동적으로 값 추가

var captical = [String: String]()
//captical[key] = value
captical["KR] = "Seoul"
// -> ["KR": "Seoul"]라는 키:값 한개씩 추가됩니다

배열과 같이 .isEmpty / .count등 사용할 수 있습니다.

if captical.isEmpty {
    print("텅~")
} else {
    print(captical.count)
}
//결과: 1

updateValue(_:forKey:)

updateValue()는 값을 할당하는 데 사용되는 메소드
+기존의 키가 있다면 키의 값을 수정하는 역할도 동시 수행

기존)
captical["KR"]
// 결과: Seoul

변경)
captical.updateValue("KR", forKey: "Incheon")
captical["KR"]
//결과: Incheon

추가)
cpatical.updateValue("JP", forKey: "Tokyo")
captical["JP"]
//결과: Tokyo

removeValue(forKey:)

removeValue()는 말 그대로 해당 key와 value를 삭제하는 메소드
딕셔너리키 = nil도 키와 값 삭제

captical["JP"] = nil 
captical.removeValue(forKey: "JP")
//둘다 JP라는 키와 값이 사라짐

딕셔너리의 순회 탐색

배열과 마찬가지로 for ~ in구문을 사용하면 된다

for i in captical {
    let (key, value) = i //i -> key: value를 가졌다
    print(key,value)
}
//결과: KR,Incheon

이번에는 간단하게 Dictionary에 대해 정리했습니다