Collection - Dicitionary

suhwj·2022년 3월 30일
0

TIL

목록 보기
11/11
post-thumbnail

3.29(화)

제가 이해하고 공부 한대로 작성한 내용이다 보니 , 정확한 정보가 아닐수도 있습니다
고쳐야 할 부분이 있다면 , 편하게 애기 해주시면 감사 하겠습니다🙏🏻

Dicitionary

Dictionary는 key와 value로 데이터를 저장하는 컨테이너입니다.
각각의 value는 유일한 키 값에 물려있으며, key값은 Dictionary안에서 value를 찾기 위하 식별자역할을 합니다.

Swift에서 Dictionary는 Dictionary<KeyType, ValueType>형태로 쓰입니다.
유일한 제약사항이 하나 있는데, 반드시 KeyType은 해쉬가능한 타입어야합니다.(Hashable)
즉, 그 자체로 유일하게 표현이 가능한 방법을 제공해야 합니다.
스위프트의 기본 타입(String, Int, Double..등)은 기본적으로 해쉬가능한 것들이므로 Dictionary의 KeyType으로 사용가능합니다 .
또한, Swift의 열거형, 즉 enum역시 해쉬가능하므로 들어갈 수 있습니다.

Dictionary사용 방법

  1. Dictionary생성하는 방법
    KeyType이 Int고, ValueType이 String인 Dictionary를 생성하는 방법입니다.
var dic : [Int : String] = [:]
var dic2 = [Int : String]()
var dic3 : Dictionary = [Int:String]()
var dic4 : Dictionary<Int, String> = Dictionary<Int, String>()
  1. Dictionary 생성과 동시에 초기화
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는 순서가 없기때문
  1. 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"]

⛺️ 문제점 / 고민한 점 / 느낀점

  • 딕셔너리에 대해 모르던 개념을 한번더 이해를 했다 !
  • 집나간 개념을 찾아오고 있다
  • 모른는 개념을 조금더 집어가고 왜 라는 질문을 자주 던져 보자!!

⛺️ 참고 자료

profile
iOS 개발자 공부하는 Roy

0개의 댓글