2023. 5. 4. 14:38ㆍSwift 이해/Swift 문법
저번 시간에는 기본 데이터 타입에 대해 배웠습니다.
이번시간엔 *컬렉션 데이터 타입 (Array,Dictionary,Set)에 대해 알아보겠습니다.
*컬렉션 데이터 타입 : 여러 값들을 묶어서 하나의 상수나 변수로 다룰 수 있도록 도와주는 타입
Array
순서(인덱스)가 있는 리스트 컬렉션 타입 , 배열이라고도 함
var ilan: Array<String> = ["Swift", "Objective-C", "Java"]
자료형은
: Array<자료형> 또는 [자료형]
으로 표기합니다
값은
[ ] 대괄호를 사용해 표기합니다
빈 Array 정의 방법은
var ilan: Array<String> = Array<String>()
var ilan2: [String] = []
var ilan3 = [String]()
이렇게 3가지 방법으로 가능합니다.
하지만 Array 타입도 마찬가지로 타입 추론으로 자료형을 명시하지 않아도 컴파일이 됩니다.
var ilan = ["Swift", "Objective-C", "Java"]
이렇게만 써줘도 Array<String>타입이란걸 알아서 인식하는거죠
이제 빈배열에 값들을 추가,확인,삭제 하는 함수를 알아보겠습니다.
//Int형 빈배열 생성
var iInt = [Int]()
//배열에 값 추가
iInt.append(1)
iInt.append(2)
iInt.append(3)
iInt // Result : [1,2,3]
//배열의 값 개수
iInt.count // Result : 3
//배열의 값 확인
iInt.contains(1) // Result : true
iInt.contains(4) // Result : false
//배열의 값 삭제
iInt.remove(at: 0) // 0번 값 삭제 Result : [2,3]
iInt.removeLast() // 마지막 값 삭제 Result : [1,2]
iInt.removeAll() // 모든 값 삭제
참고로 배열은 0부터 시작하므로
배열 0 1 2
값 1 2 3
이런식으로 값이 들어갑니다.
iInt[0] // Result : 1
따라서 0번째 값은 1이 됩니다.
Dictionary
키(key)와 값(value)의 쌍으로 이루어진 컬렉션 타입.
var icapital: Dictionary<String, String> = [
"한국": "서울",
"일본": "도쿄",
"중국": "베이징",
]
자료형은
: Dictionary<자료형,자료형> 또는 [자료형:자료형]
으로 표기합니다
값은
[ 키 : 값 ] 으로 표기합니다
빈 Dictionary 정의 방법은
var icapital: Dictionary<String, String> = [String: String]()
var icapital2: [String: String] = [:]
var icapital3 = [String: String]()
이렇게 3가지 방법으로 가능합니다.
하지만 Dictionary 타입도 마찬가지로 타입 추론으로 자료형을 명시하지 않아도 컴파일이 됩니다.
var icapital = [
"한국": "서울",
"일본": "오사카",
"중국": "베이징",
]
이렇게만 써줘도 Dictionary<String,String> 타입이란걸 알아서 인식하는거죠
다음은 추가,수정,검색,삭제하는 방법입니다
// "프랑스 : 파리" 키와 값 추가
icapital ["프랑스"] = "파리"
// 기존에 있던 "일본" 값 수정
icapital ["일본"] = "도쿄"
// 한국의 수도 출력
icapital ["한국"] // Result : 서울
//키값 삭제
icapital.removeValue(forKey: "중국") // Result : 베이징 (결과 출력후 해당 키값 삭제)
Set
순서가 없고 멤버가 유일한 컬렉션 타입. 수학의 집합 개념
var iset: Set<Int> = [1,2,3,4]
자료형은
: Set<자료형>
으로 표기합니다
값은
[ ] 대괄호를 사용해 표기합니다
빈 Set 정의 방법은
var iset1: Set<Int> = []
var iset2 = Set<Int>()
이렇게 2가지 방법이 있습니다.
Set타입은 Array,Dictionary와 달리 타입 추론이 불가합니다.
Array 선언 방법과 같기 때문에 Set을 정의해주지 않으면 Swift컴파일러는 Array로 인식하죠
Set을 선언하려면 반드시 자료형을 표기해 줍시다.
var iset: Set<Int> = [1,2,3,4]
//값 개수 확인
iset.count // Result : 4
//값 비었는지 확인
iset.isEmpty // Result : false
//값 있는지 확인
iset.contains(4) // Result : true
iset.contains(5) // Result : false
//값 추가 (이미 있으면 false, 없으면 true)
iset.insert(1) // Result : false
iset.insert(10) // Result : true
//값 삭제
iset.remove(1)
//값 전체 삭제
iset.removeAll()
마지막으로 Set의 집합에 대해 알아보겠습니다.
var iset1: Set<Int> = [1,2,3,4,5]
var iset2: Set<Int> = [1,3,5,7,9]
var iset3: Set<Int> = [2,4,6,8,10]
// 1. intersection : 교집합
iset1.intersection(iset2) // [5, 1, 3]
iset2.intersection(iset3) // 겹치는 요소 없음
// 2. union : 합집합
iset1.union(iset2) // [1, 4, 5, 3, 7, 2, 9]
iset2.union(iset3) // [9, 3, 10, 4, 1, 8, 7, 2, 6, 5]
// 3. sysmetricDifference : 여집합
iset1.symmetricDifference(iset2) // [9, 4, 2, 7]
iset2.symmetricDifference(iset3) // [10, 9, 8, 6, 7, 1, 2, 4, 3, 5]
// 4. subtracting : 차집합
iset1.subtracting(iset2) // [2, 4]
iset2.subtracting(iset3) // [1, 7, 5, 9, 3]
이상 Swift 문법 이해하기 2편을 마치도록 하겠습니다.
'Swift 이해 > Swift 문법' 카테고리의 다른 글
[Swift] 프로퍼티 옵저버 (0) | 2023.06.19 |
---|---|
함수 (0) | 2023.05.16 |
반복문 (0) | 2023.05.14 |
조건문 (0) | 2023.05.07 |
변수와 상수 , 자료형 , 기본 데이터 타입 (0) | 2023.05.03 |