1. 들어가기 전에 알아두면 좋은 것들

 

key는 중복이 불가하다.

Swift 특성상 형식에 민감하므로, 모든 Key의 자료형은 같아야한다.

딕셔너리는 정렬되지 않은 컬렉션이므로, print할 때 삽입 순서와 관계 없이 뒤죽박죽 나온다.

모든 Value 또한 자료형이 같은 것을 권장하나 Value는 다르게 두고 싶다면 Any 타입으로 선언해서 다르게 둘 수 있다.

 

 

 

 

 

2. Dictionary 딕셔너리 기본 예시

 

var capitals = [
        "한국": "서울",
        "일본": "도쿄",
        "중국": "베이징"
]
print(capitals)
capitals["한국"] = "제주도"
print(capitals)

var sample = [String:String]()
print(sample)

 

 

 

 

 

3. Dictionary 딕셔너리 기본 예시 2

 

let Intro_message = "\n   <<< Explain Message : "
let Last_message = " >>>"


print("\(Intro_message)Test Printing\(Last_message)")


print("\(Intro_message)Generate Empty Dictionary\(Last_message)")
var dict1 : [String:Int] = [:]
var dict2 = [String:Int]()
var dict3 = Dictionary<String, Int>()
print(dict1)
print(dict2)
print(dict3)

print("\(Intro_message)Generate Sample Dictionary\(Last_message)")

var dict4 = ["height":175, "weight":70, "age":25]
var dict5 : [String:Int] = ["height":175, "weight":70, "age":25]
print(dict4)
print(dict5)

dict_sample.swift
0.00MB

 

 

 

 

 

4. dictionary의 value 활용할때 주의할 optional과 default를 활용한 대응

 

!보다는 default 옵션을 활용하는 것이 좋습니다.

존재하지 않는 key에 대한 value를 가져올때, default를 설정해주면 에러 없이 default로 설정한 값을 출력하지만 default가 아니라 !로 할 경우, 불러올 수 있는 데이터가 없으므로 에러가 발생합니다.

 

let Intro_message = "\n   <<< Explain Message : "
let Last_message = " >>>"

var dict1 = ["height": 165, "age":20]
print(dict1)

print("\(Intro_message)Dictionary and optional : height - exist key\(Last_message)")
print(dict1["height"])
print(dict1["height", default: 987])
print(dict1["height"]!)

print("\(Intro_message)Dictionary and optional : weight - not exist key\(Last_message)")
print(dict1["weight"])
print(dict1["weight", default: 987])

dictionary_optional_basic_warningVer.swift
0.00MB

 

optional을 출력하는 라인을 삭제하면 warning이 사라집니다.

let Intro_message = "\n   <<< Explain Message : "
let Last_message = " >>>"

var dict1 = ["height": 165, "age":20]
print(dict1)

print("\(Intro_message)Dictionary and optional : height - exist key\(Last_message)")
print(dict1["height", default: 987])
print(dict1["height"]!)

print("\(Intro_message)Dictionary and optional : weight - not exist key\(Last_message)")
print(dict1["weight", default: 987])

dictionary_optional_basic.swift
0.00MB

 

 

 

 

 

5. Dictionary 값 추가, 수정 예시

 

 - updateValue의 활용 예시도 함께 확인 가능합니다.

 

let Intro_message = "\n   <<< Explain Message : "
let Last_message = " >>>"

print("\(Intro_message)Test Printing\(Last_message)")


var studentNumber7 = ["grade": 1, "class": 7]
print(studentNumber7)

print("\(Intro_message)grade, age 증가\(Last_message)")
studentNumber7["grade"] = 2
studentNumber7["age"] = 9
print(studentNumber7)

print("\(Intro_message)studentNumber7 수정\(Last_message)")
// updateValue 사용시, return값 존재
// 새로운 key가 추가되었다면 nil 응답, 기존에 있던 key의 value를 수정했다면 이전에 저장되어있다가 덮어씌여진 value 응답
studentNumber7.updateValue(3, forKey:"grade")
print(studentNumber7)
studentNumber7["age"] = 10
print(studentNumber7)
studentNumber7.updateValue(162, forKey:"height")
print(studentNumber7)

practice_dictionary.swift
0.00MB

 

 

 

 

 

6. Dictionary 길이 세기 & 비어있는지 확인하기

 

let Intro_message = "\n   <<< Explain Message : "
let Last_message = " >>>"

print("\(Intro_message)Test Printing\(Last_message)")
var dict1 = ["height": 165, "age":20]
print(dict1)

print("\(Intro_message)Dictionary Information\(Last_message)")
let dict1_count : Int = dict1.count
let dict1_isEmpty : Bool = dict1.isEmpty
print("length : " + String(dict1_count))
print("is empty? : " + String(dict1_isEmpty))

dictionary_info.swift
0.00MB

 

 

 - Dictionary가 비었는지 확인하고 싶을 때, 다음과 같이 작성해서 사용하는 것이 좋습니다.

 

// 지양
dict1.count == 0

// 지향
dict1.isEmpty

 

 

 

 

 

 

 

+ Recent posts