글
14. 딕셔너리 (Dictionary)
Swfit
2017. 8. 4. 12:11
14. 딕셔너리 (Dictionary)
- 고유 키 (Key) 와 귿에 대응하는 값(Value) 을 연결 하여 데이터를 저장하는 자료형이다. 인덱스 정수 대신 문자열 등의 고유 키를 사용한다는 차이를 제외 하면 배열과 아주 흡사하다.
[ 키 : 데이터 , 키 : 데이터 , …..]
- 하나의 키는 하나의 데이터에만 연결되어야 한다.
- 하나의 딕셔너리에서 키는 중복될 수 없다. 중복해서 선언하면 아이템 추가가 아니라 수정이 이루어져 기존 키에 연결된 데이터가 제거 된다.
- 저장할 수 있는 데이터 타입에는 제한이 없지만, 하나의 딕셔너리에 저장하는 데이터 타입은 모두 일치 해야 한다.
- 딕셔너리의 아이템에는 순서가 없지만 키에는 내부적으로 순서가 있으므로 for~in 구문을 이용한 순회 탐색을 할 수 있다.
- 딕셔너리에서 사용할 수 있는 키의 타입은 거의 제한이 없으나 해시 연산이 가능한 타입이어야 한다.
var capital = [“KR” : “Seoul” , “EN” : “London” , “FR” : “Paris”]
키
| 저장된 값
|
KR
| Seoul
|
EN
| London
|
FR
| paris
|
capital[“KR”] // “Seoul”
capital[“EN”] // “London”
capital[“FR”] // “Paris”
- 딕셔너리의 초기화
Dictionary<String, Int>() //문자열 키와 정수 값 딕셔너리
Dictionary<String, String>() //문자열 키와 문자열 값 딕셔너리
Dictionary<String, AnyObject>() //문자열 키와 범용 클래스 값으로 이루어진 딕셔너리
Dictionary<Character, String>() //문자 키와 문자열 값으로 이루어진 딕셔너리
- 딕셔너리의 선언과 초기화
var capital = Dictionary<String, String>( ) //방법 1
var capital = [String : String]( ) //방법 2
###################
var capital : Dictionary<String, String> //타입 이노베이션을 이용한 딕셔너리 선언
capital = Dictionary( ) //딕셔너리 초기화
###################
var capital : [string:String] //타입이노테이션을 이용한 딕셔너리 선언
capital = [String:String]( ) //딕셔너리 초기화
###################
//딕셔너리의 초기화
capital = Dictionary<String, String>( )
capital = Dictionary( )
capital = [String:String]( )
capital = [:]
- 딕셔너리에 동적 아이템 추가 하기
var newCapital = [String:String]( )
newCapital[“JP”] = "Tokyo"
print(newCapitall[“JP"])
// Tokyo
- 데이터 수정 하기
newCapital.updateValue(“okinawa”, forked:”JP”)
print(newCapitall[“JP”])
//출력 값 : okinawa
- 데이터 삭제 하기
newCapital[“JP”] = nil
print(newCapitall[“JP”])
//출력 값 : error
###################
newCapital.removeAll( ) // 딕셔너리의 모든 값 삭제
###################
newCapital.removeValue(forKey:”JP”) // JP 키 의 값 삭제
- 딕셔너리 순회탐색
for row in newCapital {
let (key , value) = row
print(“현재 데이터는 \(key) : \(value) 입니다.”)
}
// 출력
현재 데이터는 CA : Value = beijing 입니다
현재 데이터는 KR : Value = seoul 입니다
현재 데이터는 JP : Value = okinawa 입니다
###################
간결한 버전
for (key, value) in newCapital {
print(“현재 데이터는 \(key) : \(value) 입니다.”)
}
// 출력
현재 데이터는 CA : Value = beijing 입니다
현재 데이터는 KR : Value = seoul 입니다
현재 데이터는 JP : Value = okinawa 입니다
'Swfit' 카테고리의 다른 글
13. Swift 구조체와 클래스 (0) | 2017.08.04 |
---|---|
12. Swift 클로저(Closure) (0) | 2017.08.04 |
11. Swift 함수의 중첩 (0) | 2017.08.04 |
10. Swift 일급 객체로서의 함수 (0) | 2017.08.04 |
9. Swift 매개변수 (1) | 2017.08.04 |