Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ribs
- uiscrollview
- map
- tableView
- 리펙터링
- rxswift
- uitableview
- HIG
- Protocol
- Refactoring
- SWIFT
- Clean Code
- collectionview
- 클린 코드
- UITextView
- swift documentation
- combine
- Xcode
- 스위프트
- 애니메이션
- 리팩토링
- 리펙토링
- RxCocoa
- UICollectionView
- swiftUI
- Human interface guide
- Observable
- MVVM
- clean architecture
- ios
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift 공식 문서] 4. Collection Types (컬렉션 타입) 본문
Swift 컬렉션은 3가지
- Array
- Set
- Dictionary
Array
- 갯수와 값을 지정한 초기화
let intArr = [Int](repeating: 0, count: 10)
- 추가: '+=' 연산자 사용
intArr += [2]
- 삽입: insert(_:at:)
- 기존에 at에 있던 값은 오른쪽으로 밀려나는 형태
var intArr = [Int](repeating: 0, count: 3) // [0, 0, 0]
intArr.insert(2, at: 1) // [0, 2, 0, 0]
- 삭제: remove(at:)
var intArr = [Int](repeating: 0, count: 3) // [0, 0, 0]
intArr.insert(2, at: 1) // [0, 2, 0, 0]
let removedValue = intArr.remove(at: 1) // [0, 0, 0]
- 첫번째, 마지막 삭제: removeFirst(), removeLast()
Set
- 집합은 hash로 구성
- 알고리즘에서 특정 값이 존재하는지 체크할 땐 Dictionary 컬렌션보다는 Set 사용
- 사용
- 일일이 추가하는 방법
let strArr = ["jake", "kim", "john", "Lee"]
var set = Set<String>()
for str in strArr {
set.insert(str)
}
print(set) // ["john", "jake", "kim", "Lee"]
- Set 초기화에 Array을 삽입
let strArr = ["jake", "kim", "john", "Lee"]
var set = Set(strArr)
print(set) // ["kim", "john", "jake", "Lee"]
- 제거: remove(_:)
let strArr = ["jake", "kim", "john", "Lee"]
var set = Set(strArr)
set.remove("kim")
print(set) // ["john", "jake", "Lee"]
- 특정 항목이 포함되어 있는지 확인: contains(_:)
let strArr = ["jake", "kim", "john", "Lee"]
var set = Set(strArr)
set.contains("john") // true
- Set은 순서가 없고 만약 정렬된 값을 사용하고 싶은 경우: sorted()
let strArr = ["홍길동", "김하나", "이상해씨", "파이리"]
var set = Set(strArr)
for value in set.sorted() {
print(value, terminator: " ") // 김하나 이상해씨 파이리 홍길동
}
집합 연산
- 4가지 집합 연산
- 예시
let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNuimbers: Set = [2, 3, 5, 7]
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
oddDigits.union(evenDigits)
// [1, 9]
oddDigits.subtracting(singleDigitPrimeNuimbers)
// [1, 2, 9]
oddDigits.symmetricDifference(singleDigitPrimeNuimbers
// []
oddDigits.intersection(evenDigits)
집합 포함 확인 연산
- isSubset(of:), isSuperset(of:)
- isStrictSubset(of:), isStrictSuperset(of:)
- strict의미: 두 집합이 같으면 false
- isDisjoint(with:)
let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let randomDigits: Set = [1, 3]
oddDigits.isSubset(of: randomDigits) // false
oddDigits.isSuperset(of: randomDigits) // true
oddDigits.isDisjoint(with: evenDigits) // true
let sameOddDigits: Set = oddDigits
oddDigits.isSuperset(of: sameOddDigits) // true
oddDigits.isStrictSuperset(of: sameOddDigits) // false
Dictionary
- 추가: index자리에 바로 추가
var dict: [String: Int] = [:]
dict["abc"] = 1 // ["abc": 1]
- 삭제
var dict: [String: Int] = [:]
dict["abc"] = 1
dict["abc"] = nil // [:]
- Dictionary -> Array
- keys 값을 배열로: [타입](dict.keys)
- values 값을 배열로: [타입](dict.values)
var dict: [String: Int] = [:]
dict["abc"] = 1
let stringArr = [String](dict.keys)
let intArr = [Int](dict.values)
- 반복문 key or value 선택 가능
- dict.keys
- dict.values
for key in dict.keys {
}
for value in dict.values {
}
for (key, value) in dict {
}
* 참고
https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html
'swift 공식 문서' 카테고리의 다른 글
[iOS - swift 공식 문서] 6. Functions (함수) (0) | 2021.06.23 |
---|---|
[iOS - swift 공식 문서] 5. Control flow (흐름 제어) (0) | 2021.06.21 |
[iOS - swift 공식 문서] 3. String (문자열) (0) | 2021.06.18 |
[iOS - swift 공식 문서] 2. Basic Operators (기본 연산자, Nil-Coalescing, One-Sided Ranges) (0) | 2021.06.17 |
[iOS - swift 공식 문서] 1. Basics (Type Aliases, 예외 처리) (0) | 2021.06.17 |
Comments