반응형
스위프트에서 컬렉션 타입인 세트(set)를 살펴보겠습니다. 세트는 말 그대로 공통적인 것들을 묶어놓은 것이라고 볼 수 있습니다. 배열과 반대로 순서가 중요하지 않고, 유일한 값들로 채우려고 할 때 세트가 유용합니다.
1. 세트(set) 생성
var animal: set<String> = set<String>() // String 타입의 set를 생성. 이니셜라이저를 이용해 생성한 비어있는 set 입니다. var aniaml2 : set<String> = [] // 위의 의미와 동일하나, 조금 더 간편하게 축약된 형태로 set을 생성합니다. |
set을 활용할 때는 웬만하면 축약 등의 형태보다는 정확하게 명시해주는 것이 좋습니다. 배열에서 []를 자주 사용하기 때문에 자칫 헷갈려서 오류를 발생할 위험이 있거든요.
2. 세트(set) 기본 프로퍼티
var animal: Set<String> = ["dog", "cat", "monkey", "lion", "dog"] // String 타입의 Set을 선언과 동시에 초기화를 합니다. print(animal.isEmpty) // animal이 비어있는지 여부를 확인합니다. animal.insert("tiger") // animal에 값을 한 개 추가합니다. print(animal.count) // Set animal이 가진 값의 수를 세지만, 중복되는 것은 제외합니다. print(animal.remove("cat") // 요소가 삭제되면 해당 값을, 삭제되지 않으면 nil을 반환합니다. |
세트 역시 기본적으로 요소를 추가하거나, 삭제를 할 수 있도록 프로퍼티를 제공하고 있고, 또 그것들이 정상적으로 수행되었는지 판단할 수 있도록 하고 있습니다.
3. 세트(set) 활용
세트는 우리가 집합으로 활용하기에 아주 안성맞춤인 타입인데요. 유일한 값으로 되어 있기 때문에 특히 그렇습니다. 다른 세트와의 교집합이나, 합집합, 여집합 등을 계산해야 할 때 좋습니다.
let number: Set<Int> = [1, 3, 4, 6, 7, 9] let number2: Set<Int> = [2, 5, 6, 8, 9, 10] // Int형의 Set타입 print(number.intersection(number2)) // 프로퍼티를 통해 두 set의 교집합을 구할 수 있습니다. print(number.union(number2)) // 프로퍼티를 통해 두 set의 합집합을 구할 수 있습니다. let all_num: Set<Int> = number.union(number2) // 하나의 Set을 선언과 동시에 number과 number2의 합집합으로 초기화 합니다. print(number.isSubset(of:all_num)) // number가 all_num의 부분으로 속해있는지를 확인합니다. |
이 외에 다양한 활용에 대해서는 추후 따로 작성해 보도록 하겠습니다.
반응형
'스위프트(Swift)' 카테고리의 다른 글
스위프트(Swift) - 컬렉션 타입 딕셔너리(Dictionary) (0) | 2020.11.07 |
---|---|
스위프트(Swift) - 열거형(enum) (0) | 2020.11.04 |
스위프트(Swift) - 사용자 데이터 타입 튜플(Tuple) 사용 방법 (0) | 2020.10.29 |
스위프트(Swift) - 컬렉션 타입 배열(Array) 사용 방법 (0) | 2020.10.27 |
스위프트(Swift) - 데이터 타입(자료형) (0) | 2020.10.26 |