3.29(화)
제가 이해하고 공부 한대로 작성한 내용이다 보니 , 정확한 정보가 아닐수도 있습니다
고쳐야 할 부분이 있다면 , 편하게 애기 해주시면 감사 하겠습니다🙏🏻
Dictionary는 key와 value로 데이터를 저장하는 컨테이너입니다.
각각의 value는 유일한 키 값에 물려있으며, key값은 Dictionary안에서 value를 찾기 위하 식별자역할을 합니다.
Swift에서 Dictionary는 Dictionary<KeyType, ValueType>형태로 쓰입니다.
유일한 제약사항이 하나 있는데, 반드시 KeyType은 해쉬가능한 타입어야합니다.(Hashable)
즉, 그 자체로 유일하게 표현이 가능한 방법을 제공해야 합니다.
스위프트의 기본 타입(String, Int, Double..등)은 기본적으로 해쉬가능한 것들이므로 Dictionary의 KeyType으로 사용가능합니다 .
또한, Swift의 열거형, 즉 enum역시 해쉬가능하므로 들어갈 수 있습니다.
var dic : [Int : String] = [:]
var dic2 = [Int : String]()
var dic3 : Dictionary = [Int:String]()
var dic4 : Dictionary<Int, String> = Dictionary<Int, String>()
var dic : [Int : String] = [1:"Roy", 2:"swift", 3:"iOS"]
var dic2 = [1:"Roy", 2:"swift", 3:"iOS"]//타입유추. [Int:String]인 Dictionary구나
var dic3 : Dictionary = [1:"Roy", 2:"swift", 3:"iOS"]
var dic4 : Dictionary<Int, String> = [1:"Roy", 2:"swift", 3:"iOS"]
//모두 [1:"Roy", 2:"swift", 3:"iOS"]를 넣었지만, 출력이 이순서대로 된다고 보장할 수 없다. Dictionary는 순서가 없기때문
(이제 메소드를 사용하고 나서의 Dictionary안의 값들이 어떻게 변했는지 보여드릴텐데요, 임의로 Key순서대로 나타내도록 하겠습니다.
다시한번 말씀드리지만, Dictionary안의 순서는 의미가 없습니다. 실제로 Print해보시면 순서가 뒤죽박죽인 것을 볼 수 있을거에요.)
var dic : [Int : String] = [1:"zedd", 2:"swift", 3:"iOS"]
dic.updateValue("fun", forKey: 3)
print(dic)//[1:"Roy", 2:"swift", 3:"fun"]
dic[3] = "iOS"
print(dic)//[1:"Roy", 2:"swift", 3:"iOS"]