사정이 생겨서 그동안 공부를 못했다.
한번 더 훑어봐야겠다.
2021.06.05 - [Dev/Swift] - [Swift] 컬렉션 타입 (Set)
오늘은 Dictionary
Dictionary
Dict는 Key와 Value 한쌍을 데이터로 저장하는 창고?이다.
Set와 같이 Dict에는 순서가 없다.
각 Value는 해당 Value의 식별자 역할을 하는 Key와 연결이 되어있고 그 Key로 Value를 찾기때문에 순서가 필요없는 것이다.
마치 우리가 사전에 정의되있는 뭐.. 예를 들면 CPU에 대해서 알고싶을 때 우린 'CPU'를 검색하지 그것에 대한 정의로 검색하지 않는 것처럼 굳이 순서가 필요하지 않은 것이다.
물론 우리가 쓰는 사전엔.. ABC나 ㄱㄴㄷ순서는 있지만..
Swift Dictionary의 유형은 모두 Dictionary<Key, Value>로 작성된다.
또한 A dictionary Key type must conform to the Hashable protocol, like a set’s value type.
Set의 Value값과 같이 Dict의 Key값은 반드시 Hashable한 값이여야한다.
즉.. 유일한 값이어야한다. 중복이 되면 필요한 값을 찾거나 비교할 수 없으니깐 말이다.
Dictionary 생성
var dict: [Int:String]
var dict1 = [Int:String]()
var dict2: Dictionary = [Int:String]()
var dict3: Dictionary<Int,String> = Dictionary<Int,String>()
Dict 초기화
var dict: [Int:String] = [1:"홍어", 2:"회", 3:"삼합"]
var dict1 = [1:"홍어", 2:"회", 3:"삼합"] //타입 유추
var dict2: Dictionary = [1:"홍어", 2:"회", 3:"삼합"]
var dict3: Dictionary<Int,String> = [1:"홍어", 2:"회", 3:"삼합"]
너무 더워서 간만에 카페왔는데 고개 들면 보이는 간판이 홍어회삼합이길래..
dict1은 []만 보면 array로 유추할 수 있겠지만 Key:Value 값을 보고 Dict로 유추한다.
Dict 추가및 삭제
dict[5] = "어죽"
dict[4] = "전문"
dict.updateValue("분점문의", forKey: 6) //updateValue 메소드는 optional값 반환
print(dict) //[3: "삼합", 5: "어죽", 4: "전문", 6: "분점문의", 1: "홍어", 2: "회"]
dict.removeValue(forKey: 6) //맛이 없어서 분점문의가 안들어옴
print(dict) //[5: "어죽", 4: "전문", 3: "삼합", 1: "홍어", 2: "회"]
위에서도 말했지만 Dictinary는 순서가 없다. 프린트할 때마다 순서가 계속 바뀐다.
5번,7번 줄 프린트값이 다른 이유는 내가 테스트 하고 바로바로 티스토리 코드박스에 집어 넣느라..
Dict에 접근할때는 옵셔널이 씌워져있으므로 해제
'iOS > Swift' 카테고리의 다른 글
[Swift] Class & Structure (0) | 2021.08.11 |
---|---|
계산기 (0) | 2021.08.07 |
[Swift] 컬렉션 타입 (Set) (0) | 2021.06.05 |
MAC Xcode 신뢰할 수 없는 개발자 설정 방법 (0) | 2021.06.04 |
[Swift] 컬렉션 타입 (Array) (0) | 2021.06.03 |
댓글