일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 계명대 이종호
- Svelte
- IOS
- 개발
- 호키도키
- javascript
- 스위프트
- hokidoki
- 힛잇
- data structure
- 리액트
- jest
- SWIFT
- 자스민
- 자료구조
- 호키스
- HTML
- 이종호
- hokeys
- 리액트 예제
- 비동기
- 자바스크립트
- 자바스크립트 자료구조
- 스벨트
- react
- Hitit
- queue
- 개발자
- TDD
- 계명대
Archives
- Today
- Total
Dog foot print
[SWIFT] Dictionary 본문
Dictionary란
key
와 값
이 쌍으로 이루어진 집단 자료형이다.
// [키 : 값]
let countries = ["korea" : "seoul"]
딕셔너리 제약
- 하나의 키는 하나의 데이터에만 연결되어야 한다.
- 하나의 딕셔너리에서 키는 중복될 수 없고, 만약 이를 중복으로 처리하면 해당 키의 값이 재 할당된다.
- any 타입을 이용해서,
value
와key
의 타입 제한을 없앨 수 있지만 다른 이를 위해 값은 항상 같은 타입의 데이터가 할당 되어야 한다. - 딕셔너리는 아이템의 순서를 보장해주지 않는다. 즉 늦게 할당한
A
가B
보다 뒤에 있으리라는 보장이 없다. Key
는 타입 제한이 없지만, 해당 클래스가Hashable
프로토콜을 구현해야 한다.
딕셔너리 선언과 초기화
let d_1 = ["hi" : "hello"];
let d_2 = Dictionary<String,String>()
let d_3 : [String : String] = [ : ]
var d_4 : [String : String];
Note : 딕셔너리의 리터럴은 Array
와 Set
과 유사하기 때문에, 주의를 해야 한다.
딕셔너리 동적 삽입과 수정
var d_1 = ["hi" : "hello"];
d_1.updateValue("hello",forKey : "hi") = "hi"; //(key : "hi", value : "hello")
d_1.updateValue("반갑습니다.",forKey : "hi")
var countries = ["korea" : "seoul"];
countries["korea"] = "daegu";
countries["japan"] = "tokyo";
딕셔너리의 동적 삽입과 수정은 updateValue
메서드로 실행된다. 이 메서드는 해당 키의 value가 존재한다면 해당 값을 수정 해주지만 존재하지 않을 때는 해당 키에 값을 할당 한다. 다른 방법으로 []
를 사용하여, 키를 명시하는 방법도 있다.
딕셔너리 삭제와 읽기
var countries = ["korea" : "seoul"];
countries["korea"] = "daegu";
countries["japan"] = "tokyo";
countries.removeValue(forKey: "korea");
print(countries["japan"])
countries["japan"] = nil;
print(countries)
딕셔너리의 삭제는 removeValue(forKey : )
를 사용하는 방법과 nil
을 삭제하고자 하는 키에 할당하는 것이다.
딕셔너리 순회
var countries = ["korea" : "seoul"];
countries["korea"] = "daegu";
countries["japan"] = "tokyo";
for (key , value) in countries {
print("\(key)의 수도는 \(value)입니다.")
}
딕셔너리는 튜플의 집단 자료형이기 때문에, 순회를 하게 되면 위와 같은 모습으로 분해 된다.
반응형
'IOS > Swift' 카테고리의 다른 글
[SWIFT] 함수 시작하기 (0) | 2021.07.07 |
---|---|
[SWIFT] Optional (0) | 2021.07.05 |
[SWIFT] Set 집합 (0) | 2021.07.01 |
[SWIFT] 문자열 보간법과 트리플 쿼우팅 (0) | 2021.06.30 |
[SWIFT] 기본 자료형[2] (0) | 2021.06.29 |
Comments