Swift 정리 - Collection Types

김세영·2021년 12월 18일
0

Swift Doc 정리

목록 보기
3/17
post-thumbnail

Swift는 Array, Set, Dictionary 3 가지의 컬렉션을 제공한다.

Array

  • 선언
let someInts = [Int]()
// let someInts: [Int] = []
// let someInts = Array<Int>()
// someInts : []

let someStrings = [String](repeating: "A", count: 3)
// let someStrings = Array(repeating: "A", count: 3) <- 타입 추론
// someStrings : ["A", "A", "A"]

let someDoubles: [Double] = [1.0, 2.0, 3.0]
// let someDoubles = [1.0, 2.0, 3.0] <- 타입 추론
  • enumerated()
    배열의 값과 인덱스로 이루어진 튜플로 for-in loop을 순회
let animals = ["Dog", "Cat", "Bird"]

for (index, value) in animals.enumerated() {
    print("animal \(index + 1) : \(value)"}
}
// animal 1 : Dog
// animal 2 : Cat
// animal 3 : Bird

Set

hasable 데이터를 담을 수 있는 집합 형태의 자료구조

  • 선언
let someInts = Set<Int>()
// someInts : []

let someStrings: Set<String> = ["A", "B", "C"]
// let someStrings: Set = ["A", "B", "C"]
// someStrings : ["B", "A", "C"]

Set은 넣은 순서대로 값이 나올거라는 보장이 없다.

  • 명령

    • 교집합 intersection
    • 대칭차 symmetricDifference
    • 합집합 union
    • 차집합 subtracting
  • 기타 포함 관계 및 비교 메서드들이 존재

Dictionary

SwiftDictionaryNSDictionary를 브릿지한 타입
[Key : Value] 형태로 이루어진 자료구조이고, 이 때 Key는 hasable

  • 선언
let someIntWithName = [String : Int]()
// let someIntWithName: [String : Int] = [:]
// someIntWithName : [:]

var airports: [String : String] = ["YYZ" : "Toronto Pearson", "DUB" : "Dublin"]
// airports : ["YYZ" : "Toronto Pearson", "DUB" : "Dublin"]

딕셔너리 또한 넣은 순서대로 값이 나올거라는 보장이 없다.

  • 접근
    let value = dictionary["key"] 형식을 통해 키에 대응하는 값을 받아옴.
    키가 존재하지 않으면 valuenil 담김. -> value는 옵셔널

    • updateValue(_:forKey:) -> Value?
      두 번째 인자로 주어지는 키 값이 있을 경우 대응하는 Value값을 변경하고,
      키 값이 없을 경우 새로 [Key : Value] 를 추가함.

    • removeValue(forKey:) -> Value?
      인자로 주어지는 키 값이 있을 경우 해당 목록을 삭제하고,
      없을 경우 그냥 넘어감.
      removeAll()을 통해 모두 지워줄 수 있다.

      • 두 메서드 모두 반환 값은
        기존 키 값이 존재했던 경우 그 값을,
        존재하지 않았던 경우 nil을 반환
profile
초보 iOS 개발자입니다ㅏ

0개의 댓글