4-3. 딕셔너리(Dictionary)

🌈 devleeky16498·2022년 4월 11일
0

딕셔너리는 순서와 상관없이 콜렉션에 같은 타입의 키와 같은 타입의 값을 저장한다. 각 값은 딕셔너리 내부에서 값에 대한 식별자로 동작하는 유니크한 키와 조합된다. 딕셔너리에는 순서가 없다. 딕셔너리는 Foundation 모듈의 NSDictionary클래스와 연결된다.

딕셔너리의 짧은 구문

스위프트의 딕셔너리 타입은 Dictionary<Key, Value>로 적어주며 Key는 딕셔너리의 값을 조회하는 값이며, value는 저장되는 값이다.<>안에는 각 키와 값의 타입을 명시해준다.

빈 딕셔너리 생성

  1. 배열과 마찬가지로 초기화 구문을 통해 빈 딕셔너리 생성이 가능하다.

    var names = [Int : String]()
    // 이는 키 값이 Int 값이 String의 타입을 지니는 딕셔너리이다.
  2. 배열의 리터럴과 비슷한 딕셔너리 리터럴로 딕셔너리 초기화가 가능하다. 딕셔너리에서 키-값 쌍의 키와 값은 콜론으로 구분된다.

    var value : [String : String] = ["LUT" : "Luton", "KVF" : "Korea"]
    var value = ["LUT" : "Luton", "KVF" : "Korea"]
    //다음과 같이 딕셔너리 리터럴을 통해서 초기화 가능하다.
    //타입을 명시하지 않는 경우 타입유추로 에러가 발생하지 않는다.
  3. 딕셔너리의 메소드와 프로퍼티, 서브스크립트 구문을 통해서 접근과 수정이 가능하다.

    print(value.count)
    //다음의 경우 2를 출력한다.
    if value.isEmpty {
    	print(value)
    }
    //딕셔너리 배열이 비어있는 여부를 부울 프로퍼티로 확인이 가능하다.
  4. 서브 스크립트 구문을 통해서 새로운 아이템 추가 및 수정이 가능하다.

    value["USA"] = "America"
    //다음 서브스크립트를 통해서 딕셔너리 추가가 가능하며 아이템은 총 3개가 된다.
    value["USA"] = "Nothern America"
    //있는 딕셔너리에 대해 다음과 같이 쓸 경우 기존의 값을 변경해줄 수 있다.
    value["USA"] = nil
    //딕셔너리 키에 nil을 할당해서 딕셔너리를 삭제할 수 있다.

    딕셔너리 반복

  5. for 루프를 통해 딕셔너리 키-값쌍 반복이 가능하다. 딕셔너리 각 아이템은 (key, value)의 튜플로 반한되며 이를 임시 상수 및 변수로 분리가 가능하다.

    for (airCode, airName) in value {
    	print(airCode)
    }
    //다음과 같이 튜플값을 나누어서 핸들링이 가능하다.
  6. 딕셔너리 keys와 values 프로퍼티를 사용해서 반복 가능한 콜렉션을 가져올 수 있다.

    for airCode in value.keys {
        print(airCode)
     }
    
     for airName in value.values {
        print(airName)
     }
    //다음과 같이 키 값들에 대한 반복문만 돌릴수도 있다.
  7. 딕셔너리의 키 또는 값을 Array 인스턴스의 API를 사용해야 할 경우 keys 또는 values 프로퍼티로 새로운 배열을 초기화 해야한다.

    let airCodes = [String](value.keys)
    let airNames = [String](value.values)
    //다음과 같이 키 와 값들에 대한 반복문만 돌릴수도 있다.
profile
Welcome to Growing iOS developer's Blog! Enjoy!🔥

0개의 댓글