이 글은 Swift 문법 정리글입니다.
Swift에서는 Array, Dictionary, Set와 같은 타입은 컬렉션 타입이라고 부릅니다. 여러가지 데이터 타입을 묶어서 표현할 수 있는 타입이죠.
순서가 있는 리스트 컬렉션입니다. 배열이라고 할 수 있습니다. 선언한번 해보겠습니다.
var someArray : Array<Int> = Array<Int>()
var someArray : [Int] = [Int]()
위 표현은 동일한 의미로 사용할 수 있습니다.
var someArray : [Int] = [1, 2, 3]
>> [1, 2, 3]
someArray.append(4)
>> [1, 2, 3, 4]
append 메소드를 이용하면 배열 뒤에 값을 삽입할 수 있습니다.
var someArray : [Int] = [1, 2, 3]
>> [1, 2, 3]
someArray.remove(at:0) // 인덱스로 삭제
someArray.removeFirst() // 첫번째 원소 삭제
someArray.removeLast() // 마지막 원소 삭제
someArray.removeAll() // 전체 삭제
>> [1, 2, 3, 4]
위 처럼 여러가지 방법으로 배열의 원소를 삭제할 수도 있습니다. 그 외에도 여러가지 메소드를 지원하고 있으니 공식문서를 한번 확인하는 것도 좋은 방법입니다.
Dictionary는 순서가 보장되지 않는 key-value 구조를 나타냅니다.
var someDict : Dictionary<String, Any> = Dictionary<String, Any>()
var someDict : [String:Any] = [String:Any]()
배열 처럼 위의 방식 모두 Dictionary 구조를 선언할 수 있습니다.
someDict["name"] = "HanSangWook"
위 처럼 키에 값을 할당하는 방식으로 값을 할당할 수 있습니다.
someDict.removeValue(forKey: "name")
someDict["name"] = nil
삭제를 하는 경우 removeValue 메소드를 사용하면 되나, nil을 할당하는 것으로 삭제를 할 수도 있습니다.
순서를 보장하진 않지면 데이터 중복을 방지하기 위해서는 Set타입을 사용할 수 있습니다. Set 타입은 다른 컬렉션 타입과 다르게 축약 표현을 제공하지 않습니다.
var someSet : Set<Int> = Set<Int>()
마찬가지로 Set도 원소를 추가하거나 삭제할 수 있습니다.
someSet.insert(100)
여기서, insert메소드는 추가하고자 하는 원소를 할당하면 됩니다. 다만, 주복된 요소는 삽입이 되지 않습니다.
someSet.remove(100)
마찬가지로 remove 메소드는 삭제하고자 하는 원소를 지정하면 됩니다.