본문 바로가기
FRONT-END/iOS

자바스크립트와 비교하며 Swift 공부하기 - Dictionary편

by 랄라J 2023. 7. 8.

Dictionary

// 정식 문법
let dic: Dictionary<String, String> = ["name": "Rarla", "gender": "female"]

// 단축 문법
lec dic: [String: String] = ["name": "Rarla", "gender": "female"]
  • 데이터를 키와 값으로 하나의 쌍으로 만들어 관리하는 컬렉션, 순서는 중요하지 않음
  • 키 값은 유일해야 한다. (Hashable 해야 함. 즉, 해시함수를 사용해 유일한 값으로 변환이 가능해야 함)
    • 검색을 하려고 할 때, 배열은 순차적으로 검색해야 해서 시간이 많이 걸리지만 Hash로 변환되어 저장하게 되면 해당하는 값으로 바로 접근할 수 있어 검색 속도가 빠름
  • 동일한 타입 쌍의 데이터만 담을 수 있음
  • 딕셔너리의 값에 딕셔너리나 배열을 사용해 중첩으로 사용이 가능
  • 딕셔너리 값만 따로 검색하는 방법은 제공하지 않음
  • 자바스크립트의 Object 형태와 유사하나, Swift의 Dictionary는 중괄호({})가 아닌 대괄호([])로 묶는다는 점이 다름

 

빈 Dictionary 생성 방법

let emptyDic1: Dictionary<Int, String> = [:]
let emptyDic2 = Dictionary<Int, Stirng>()
let emptyDic3 = [Int, String]()

 

Dictionary 접근 방법

dic = ["name": "Rarla", "gender": "female"]

dic["name"] // Rarla
print(dic["name"]) // Optional("Rarla")

dic["name", default: "Empty"] // Rarla
  • 에러를 방지하기 위해 Optional로 제공됨, 옵셔널 바인딩해서 사용해야 함

 

Dictionary 기본 기능

  • dic.count
  • dic.isEmpty
  • dic.ramdomElement()
  • dic.keys
  • dic.values
  • dic.updateValue("macbook", forKey: "have") : 삽입, 교체, 추가
  • dic.removeValue(forKey: "have")
  • dic.removeAll()

 

Dictionary 비교

  • 순서가 다르더라도 키, 값이 같다면 같다는 결과를 얻을 수 있음
728x90

댓글