튜플
- 다수의 데이터 다루기
var one = (1, "one", "일") // 튜플 , 값 나열
print(one.1)
//print one
let(_, ENG, _) = one //_ : 무시
print(ENG)
//print one
- 이름으로 접근
let two = (num : 2, eng: "two" , kor: "둘")
print(two.num) //2
print(two.eng) //two
print(two.kor) //둘
- 튜플간 비교
- 튜플 내 원소 순서대로 비교
(1, "1") == (1,"1") //true
(1, "one") < (2, "two") //true
(1, "one") < (1, "first") //flase
배열
- 타입 선언 : Array<Element>, [Element]
var intArray : [Int] = [1,2,3,4,5] // 배열명 : 배열 타입 = 배열원소
let strArray = ["A","B","C"]
let floatArray = Array<Float>([1.1,2.2,3.3])
- 공백 배열(타입 선언 필요)
var emptyArray = [Int]()
var emptyArray2 = Array<Double>()
var emptyArray3 : [String] = []
- 원소 개수와 공백 확인
- Count
- isEmpty
//원소개수
floatArray.count // 3
//공백확인
floatArray.isEmpty // alse
- 원소 추가
- mutating func append(_ newElement: Element)
- mutating func insert(_ newElement: Element, at i: Int)
var intArray : [Int] = [1,2,3]
intArray.append(2) //[1,2,3,2]
intArray.insert(4, at: 3) // 3뒤에 4를 삽입 [1,2,3,4,2]
intArray += [6,7] // [1,2,3,4,2,6,7]
- 항목 제거
var intArray : [Int] = [1,2,3,4,5,6]
// 특정 인덱스의 항목 제거
intArray.remove(at: 3) //3뒤에 워소 삭제
// 첫 번째 원소 제거
intArray.removeFirst() //[2,3,4,5,6]
//마지막 원소 제거
intArray.removeLast() // [1,2,3,4,5]
- 배열 내 원소 변경
var intArray : [Int] = [1,2,3,4,5,6]
intArray[2] = 10
intArray[3...4] = [9,8,7]
//[1, 2, 10, 9, 8, 7, 6]
딕셔너리 (Dictionary)
- 키 - 값 방식으로 다수의 값 다루기
- 딕셔너리 내 키는 유일
- 키 : 해시값을 제공할 수 있는 Hashable
- Dictionary <key,Value>, [Key : Value]
var dic = ["1월":"Jauary","2월":"February","3월":"March"]
var dic2 : [String : Int] = ["일" : 1, "이" : 2, "삼" : 3]
var dic3 : Dictionary<Int, String> = [1 : "one", 2: "Two", 3: "Three"]
var emptyDic = [Int: Int]()
- 원소 갯수 : count 프로퍼티
dic.count //3
- 원소 접근
- 없는 원소일떄 nil값 반환
dic["2월"]// February
- 원소 변경
- updateValue(_ : forrKey:)
dic["4월"] = "잔인한 달" //추가
print(dic)
dic.updateValue("계절의 여왕", forKey: "4월")
- 원소 삭제
- removeValue(forKey:)
- dic[element] = nil
dic.removeValue(forKey: "2월")
dic["1월"] = nil
- 다중 구조
- 콜렌션을 이용한 다중 구조
let evenNums = [2,4,6]
let oddNums = [1,3,5,7]
let dic : [String:[Int]] = ["even" : evenNums, "odd" : oddNums] //String 과 int배열
dic["odd"]![1] //unwarraping
셋(Set)
- 유일한 원소
- 원소만 저장
- 임의의 순서
// 배열에서 생성
var beverage : Set<String> = ["Coke","Juice","Milk"]
// 공백
var letters = Set<Character>()
- 원소 접근
beverage.count //3
beverage.contains("Coke") //true
beverage.contains("Sprite") //false
- 셋 연산
- 교집합 : insersection
- 합집합 : union
- 대칭차집합 : symmetricDifference
- 차집합 : subtracting
var set1 : Set<Int> = [1,2,3]
var set2 : Set<Int> = [2,3,4]
// 교집합
let setIntersetion = set1.intersection(set2) // [3,2]
// 합집합
let setUnion = set1.union(set2) // [3,4,2,1]
// 대칭차집합
let setSymmetricDifference = set1.symmetricDifference(set2) // (,4)
// 차집합
let setSubtracting = set1.subtracting(set2) // (1)