- Value Type
- 다른 변수에 대입하면 복사됨
- argument로 넘겨도 복사됨
- argument로 collection을 넘겨서 변화주면 원하는 결과를 얻을 수 없음
- Objective-C의 경우 가능
Array
- 동일한 Type의 값을 저장할 수 있는 Ordered List
- 동일한 값이 다른 위치에서 반복적으로 낭로 수 있음
- Foundation의 NSArray와 bridge
- 표현
let array: Array<SomeType>() let array: [SomeType] let array = [Int]() let array = Array<Int>() - 접근
array[0] = "A" array[1..3] = ["a", "b", "c"]
Set
- 동일한 type의 값을 저장할 수 있는 Collection
- 동일 값 존재 불가
- Foundation의 NSSet과 bridge
- 표현
let someSet: Set<Int>() let genres: Set<String> = ["Rock", "Classic", "Hip hop"]- type 명시가 없다면 array로 유추됨
- Element
- Element는 Hashable type이어야 함
- 기본적인 type(String, int, Double, Bool)은 Hashable
- Custom type을 Set에서 사용하려면 Hashable protocol 만족해야함
- Hashable
public func hash(into hasher: inout Hasher)- 어떤 value에 hashValue를 제공해서 value의 동일성을 검충하는데 사용
- value(struct)의 모든 값을 비교하는 것보다 빠름
Dictionary
- key, value의 쌍을 저장하는 collection
- key, value는 각각 type이 지정되어야 함
- key는 dictionary안에서 unique하며, value의 identifier로 동작
- key는 hashable
- 순서 없이 저장한다.
- 표현
let a: Dictionary<KeyType, ValueType> let b: [KeyType: ValueType] a = Dictionary<Int: String>() b = [Int: String]() var airports: [String, String] = ["XYZ": "Toronto", "DUB": "Dublin"] var airports = ["XYZ": "Toronto", "DUB": "Dublin"] - 메서드
- updateValue
- removeValue