ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • swift - Collection Types Overview
    swift 2021. 1. 6. 23:26

    Collection Types

    배열, dictinary set?

     

     

    swift는 3가지 collection Type을 제공

     

    1. Array

     

     - 배열은 데이터를 순서대로 저장하는 collection

     

    2. Dictionary

     

     - key, value 쌍으로 저장

     

    3. set

     

     집합인데 수학에서 제공하는 집합 메소드를 사용가능

     


    swift는 두가지 collection을 제공

     

    foundation collection - class로 구현된 것

     

    - 참조 형식

     

    swift collection - struct로 구현된 것 

     

     - 값 형식

     


    Foundation Collection은 객체형식만 저장가능

     

    swift Collection은 객체, 값 둘다 저장가능

     


    Foundation은 객체만 저장할 수 있지만 객체안에는 어떤 자료형이던 상관 없음 

     

    Swift Collection은 문자열을 저장하는 컬렉션에는 문자열 외에는 다른 것을 저장할 수 없다.

     

     - > 그래서 선언 시점에 저장할 데이터의 자료형을 명시적으로 선언한다.

     


    Collection을 이루는 데이터를 Element 또는 entry라고 부름

     


    Foundation Collection은 가변 컬렉션과 불변 컬렉션을 별도의 클래스로 결정

     

    - Mutable이 붙으면 가변, 안붙으면 불변

     

    swift collection은 키워드로 구분

     

     


    Collection의 불변, 가변성은 Collection에 저장된 요소의

    불변, 가변성에 영향을 주지 않는다.

     

     

    불변 Collection에 가변 문자열이 저장되어 있으면

     

    Collection 자체를 수정할 순 없지만 문자열은 변경가능

    가변 Collection에 불변 문자열이 저장되어 있는경우

     

    Collection 자체 수정가능 그러나 문자열을 수정할 수 없음


    아까 말했듯 swift Collection은 구조체로 구현된 값형식

     

     - 그래서 값이 사용될 때마다 복사되어야 하는데 상대적으로 큰 데이터이기 떄문에

     

      문자열과 마찬가지로 반드시 복사가 필요한 경우에만 복사 실행(copy-on-write)

     

    -> collection이 변경되지 않으면 복사실행 x, 메모리 공유

     

     

    댓글

Designed by Tistory.