-
Dictionary init(uniqueKeysWithValues:)Swift 2023. 1. 6. 12:26
Dictionary를 간단하게 설명하자면 요소들이 순서 없이 key와 value로 구성되는 collection Type이다.
Dictionary는 key값이 유일해야하며, 같은 이름을 중복으로 사용할 수 없고 value는 상관없다.
let dict: [String: Int] = ["A": 1, "B": 2, "C": 3]
Dictionary init(uniqueKeysWithValues)는 주어진 시퀀스의 key-value 쌍에서 새로운 딕셔너리를 만든다.
간단히 말하면 배열에 value를 임의로 추가하여 새 Dictionary로 초기화시킨다고 알면된다.init<S>(uniqueKeysWithValues keysAndValues: S) where S : Sequence, S.Element == (Key, Value)
Parameter keysAndValues:
A sequence of key-value pairs to use for the new dictionary. Every key in keysAndValuew must be unique.열거형으로 case를 만들고 CaseIterable 프로토콜을 준수하면 각각의 case를 순회하고 해당 값들을 allCases콜렉션을 사용해서 배열로 뽑아 낼 수 있다. 여기서 만들어진 array를 어떻게 dictionary로 만들 수 있을까? 라는 의문을 품고 알게된 Dicitonary init 절대 키 값은 중복이 될 수 없으니 중복 되지 않는 값으로!
아래와 같이 [과일case: 재고1] 를 담아주는 fruitStock Dictionary를 만들 수 있다.
//과일 타입 enum Fruit: CaseIterable { case strawberry, case banana, case watermelon, case mango, case orange } //과일에 재고를 넣어줘보자 let fruitStock = Dictionary(uniqueKeyandValues: Fruit.allcases.map{ ($0, 10) } print(fruitStock) //[strawberry: 10, banana: 10, watermelon: 10, mango: 10, orange: 10] //내가 원하는 딕셔너리 [과일: 재고] 타입으로 만들어졌을까? 당연히 그렇겠쮸 type(of: fruitStock) //Dictionary<Fruit, Int>.Type
'Swift' 카테고리의 다른 글
Swift 구조체와 클래스 3 저장 속성, 지연 저장 속성, 계산 속성, 타입 속성, 프로퍼티 감시자 (0) 2023.01.04 Swift 구조체와 클래스 2 초기화(Initialization) (0) 2022.12.30 Swift 구조체와 클래스 1(Struct and Class) 사용이유, 공통점, 차이점, 구조체와 클래스 내의 let, var 선언 (0) 2022.12.28 Swift Optional 정의, 옵셔널 추출 방법 (0) 2022.12.22 API Design Guidelines 알아보기(swift Naming) (0) 2022.12.21