Array, Dictionary, Set
// 다양한 Int 타입의 빈 Array 선언
var integers: Array<Int> = Array<Int>()
var integers2: Array<Int> = [Int]()
var integers3: [Int] = [Int]()
var integers4: [Int] = []
var integers5: Array<Int> = Array()
var integers6: [Int]()
var intNumbers = [1,2,3,4,5]
// 'Int' 요소를 갖는 배열
var strings = ["A","BC","DEF"]
// 'String' 요소를 갖는 배열
Int
타입 배열은 연속된 숫자 배열을 쉽게 선언할 수 있다.var intArray = Array<Int>(1...10)
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let
을 사용하여 Array를 선언하면 불변 Array가 생성된다.let immutableArray: [1, 2, 3]
// 변경할 수 없기 때문에 아래의 메소드들은 사용할 수 없다.
immutableArray.append(4)
immutableArray.removeAll()
Any
타입으로 지정하면 된다.let anyArray: [Any] = [1, 2, "a", "b"]
append
: 리스트에 요소 추가하기
integers.append(1)
integers.append(100)
// [1, 100]
integers.append(101.1)
// 다른 타입은 넣을 수 없다.
contains
: 해당 요소가 들어있는지 확인하기
integers.contains(100)
// true
integers.contains(99)
// false
remove(at: {idx})
: 리스트에서 해당 인덱스 제거하기
// 0번 인덱스 제거하기
integers.remove(at: 0)
// [100]
removeLast
: 리스트에서 마지막 요소 제거하기
integers.removeLast()
// [1]
removeAll
: 리스트에서 모든 요소 제거하기
integers.removeAll()
// []
count
: 리스트의 요소 개수, 길이
integers.count
// 0
Any
로 선언한다.Any
가 올 수 없다.// Key가 `String` 타입, Value가 `Any`인 빈 Dictionary 선언
var anyDictionary: Dictionary<String, Any> = [String: Any]()
let emptyDictionary: [String: String] = [:]
let initalizedDictionary: [String: String] = ["name": "sebin", "gender": "female"]
// let으로 선언했으므로 emptyDictionary와 initalizedDictionary는 값을 변경할 수 없다.
// 값 추가하기
anyDictionary["someKey"] = "value"
anyDictionary["anotherKey"] = 100
anyDictionary
// ["someKey": "value", "anotherKey": 100]
nil
로 값을 제거할 수 있다.anyDictionary["anotherKey"] = nil
// ["someKey": "value"]
let someValue: String = initalizedDictionary["name"]
// error
count
: 딕셔너리 개수 확인하기
anyDictionary.count
// 1
removeValue(forKey: {Key})
: 딕셔너리에서 지정한 키에 해당하는 값 제거하기
anyDictionary.removeValue(forKey: {someKey})
// [:]
isEmpty
: 딕셔너리 비었는지 확인하기
anyDictionary.isEmpty
// true
// Set은 축약 문법이 없다.
var integerSet: Set<Int> = Set<Int>()
//Set([])
insert
: Set에 요소 추가하기
integerSet.insert(1)
integerSet.insert(100)
integerSet.insert(99)
integerSet.insert(99)
// {100, 99, 1}
contains
: 해당 요소가 들어있는지 확인하기
integerSet.contains(1)
// true
integerSet.contains(2)
// false
remove
: 해당 요소 제거하기
integerSet.remove(100)
// {1, 99}
removeFirst
: 첫번째 요소를 제거하지만 순서가 없기 때문에 확신할 수 없다.
integerSet.removeFirst()
// {99}
count
: Set 개수 확인하기
integerSet.count
// 1
union({Set})
: 합집합 연산
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [3, 4, 5, 6, 7]
let union: Set<Int> = setA.union(setB)
// {2, 4, 5, 6, 7, 3, 1}
intersection({Set})
: 교집합 연산
let intersection: Set<Int> = setA.intersection(setB)
// {5, 3, 4}
subtracting({Set})
: 차집합 연산
let subtracting: Set<Int> = setA.subtracting(setB)
// {1, 2}
exclusiveOr({Set})
: 차집합들의 합집합 또는 합집합에서 교집합을 뺌
let exclusiveOr: Set<Int> = setA.exclusiveOr(setB)
// {1, 6, 2, 7}
sorted
: 정렬, 배열로 변환한다.
let sortedUnion = [Int] = union.sorted()
// [1, 2, 3, 4, 5, 6, 7]