Swift는 Array
, Set
, Dictionary
3 가지의 컬렉션을 제공한다.
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
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
기타 포함 관계 및 비교 메서드들이 존재
Swift
의 Dictionary
는 NSDictionary
를 브릿지한 타입
[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"]
형식을 통해 키에 대응하는 값을 받아옴.
키가 존재하지 않으면 value
에 nil
담김. -> value
는 옵셔널
updateValue(_:forKey:) -> Value?
두 번째 인자로 주어지는 키 값이 있을 경우 대응하는 Value값을 변경하고,
키 값이 없을 경우 새로 [Key : Value] 를 추가함.
removeValue(forKey:) -> Value?
인자로 주어지는 키 값이 있을 경우 해당 목록을 삭제하고,
없을 경우 그냥 넘어감.
removeAll()
을 통해 모두 지워줄 수 있다.
nil
을 반환