Swift/Swift 문법
[데이터 타입] 딕셔너리(Dictionary)
내일은개발천재🎵
2022. 4. 2. 19:13
일반 컬렉션
- 많은 데이터를 묶어서 저장하고, 관리할 수 있는 타입
- 잘못된 값을 실수로 컬렉션형에 삽입할 수 없다.
- → 컬렉션 내부에 있는 값은 신뢰할 수 있다.
- 배열, 세트, 딕셔너리가 존재한다.
- var로 선언한다면 원소 생성, 삭제, 변경이 가능하다. (let은 불가능)
- 변경할 필요가 없다면 상수(let)으로 선언하는 것이 좋다.
- → 컴파일러가 컬렉션의 성능을 최적화하기 때문
딕셔너리 (Dictionary)
- 키 - 값의 쌍으로 구성된다.
- 순서가 없다.
- 키가 하나이거나, 여러개일 수 있다.
- 키가 유일한 식별자가 되어야한다. (중복 불가. Hashable)
// 빈 딕셔너리 생성
var dic: Dictionary<String, Int> = Dictionary<String, Int>()
var dic2: [String: Int] = [String: Int]()
var dic3: [String:Int] = [:] // 키와 값 타입을 명시해야함.
typealias StringIntDictionary = [String:Int] // 원래 맨 위에 선언해야됑
var dic4: StringIntDictionary = StringIntDictionary()// 타입별칭 사용
// 선언과 동시에 초기화
var dic5: [String:Int] = ["jiwon":100, "meison":100]
var dic: [String:Int] = ["jiwon":100, "meison":200, "soi":300]
print(dic["jiji"]) // nil
// 원소 삽입
dic["jiji"] = 70
// 값 변경
dic["jiji"] = 80
// 값 삭제
print(dic.removeValue(forKey: "jiji")) // 값 반환됨(80)
dic["meison"] = nil
// 항목 순회
for tuple in dic{
print(tuple) // 튜플 형태로 값이 들어옴
}
for (key, value) in dic{
print(key, value)
}
// key 값 또는 value로 새로운 배열 만들기
let keys = [String](dic.keys)
let values = [Int](dic.values)