배열(Array)
// 배열 생성
var numberArray = [2,4,6,8,10]
var stringArray = ["a","b","c"]
var doubleArray : [Double] = [0.1,0.3,0.5]
// 배열 추가
numberArray.insert(contentsOf: [5,6], at: 1)
셋(Set)
- 여러 데이터를 순서 상관없이, 그리고 중복없이 담아 놓은 변수
- array 와 차이점
- 순서가 없다 (랜덤 순서다)
- 중복 데이터를 들고 있지 않는다
- Set 형태로 저장되기 위해서는 반드시 타입이 hashable 이어야만 가능 (String, Int, Double, Bool)
// 셋 생성
var primes: Set<Int> = [2, 3, 5, 7]
// 중복 데이터 넣으려고 시도하면, 중복된것 알아서 무시됨
var evens = Set<Int>([2, 4, 6, 8, 2, 4])
// 비어 있는 set 초기화
var emptySet: Set<Int> = []
var emptySet: Set<Int> = Set<Int>()
튜플(tuple)
- 여러 데이터를 하나의 값으로 표현
- 세부 데이터 접근시, 포지션 또는 이름으로 접근 가능
// 생성
var person: (String, Int, Double) = (”yagom”, 100, 182.5)
var phone = (name: "yagom", age: "100", height : 182.5)
var person: (name: String, age: Int, height: Double) = (”yagom”, 100, 182.5)
// 인덱스 & 이름을 통해서 값을 빼 올 수 있음
print(”이름: \(person.0), 나이: \(person.1), 신장: \(person.2)”
print(”이름: \(person.name)”)
// 요소 이름 & 인덱스를 통해 값 할당 가능
person.age = 99
person.2 = 178.5
// 튜플 별칭 지정
typealias PersonTuple = (name: String, age: Int, height: Double)
let john: PersonTuple = (”john”, 100, 178.5)
let eric: PersonTuple = (”eric”, 150, 183.5)
딕셔너리
- 여러 데이터를 키와 값의 형태로 담아 놓은 변수
- 값을 접근할때는 키를 통해서 접근함
- 접근한 키의 값이 없으면 nil
- 접근한 키의 값이 있으면 해당 값을 전달
// 생성
let languageCode = [
"한국" : "ko",
"미국" : "en",
"일본" : "ja",
]
languageCode["한국"] // "ko"
languageCode["베트남"] // nil
// 비어 있는 딕셔너리 초기화
var emptyDic: [String: Any] = [:] // [String: Any]()로도 표현
열거형(Enum)
- 서로 관계있는 값들을 모아서 표현한것
- 특정 타입들을 표시할때 사용하기 좋음
기본 열거형
// 요일 enum 생성
enum WeekDay {
case mon
case tue
case wed
case thu
case fri
}
var today: WeekDay = .mon
원시 값
enum WeekDay {
case mon = "월요일"
case tue = "화요일"
case wed = "수요일"
case thu = "목요일"
case fri = "금요일"
}
let today: WeekDay = WeekDay.fri
print(today.rawValue) // 금요일
연관 값
enum MainDish{
case pasta(taste: String)
case pizza(dough: String, topping: String)
}
var dinner: MainDish = MainDish.pasta(taste: “크림”)
dinner = .pizza(dought: “치즈크러스트”, topping: “불고기”)