본문 바로가기
ios 뽀개기/스위프트 정리

8. 열거형

by 인생여희 2017. 11. 15.
반응형
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
//열거형 : 열거형은 연관된 항목들을 묶어서 표현할 수 있다.
// 배열이나 딕셔너리 같은 타입과 다르게 프로그래머가 정의해준 항목 값 외에는 
// 추가/수정이 불가하다
//그렇기 때문에 딱 정해진 값만 열거형 값에 속할 수 있다.
 
enum School{
    
    case primary //유치원
    case elementary //초등
    case middle //중등
    case high //고등
    case college //대학
    case university // 대학교
    case graduate //대학원
}
 
 
 
//School열거형 변수의 생성 및 값 변경
 
var highestEducationLevel: School = School.university
 
//같은 표현
//var highestEducationLevel: School = .university
 
//같은 타입인 School 내부의 항목으로만 highestEducationLevel의 값을 변경 가능
highestEducationLevel = .graduate
 
print(highestEducationLevel)
 
//원시값: 열거형의 각 항목은 자체로도 하나의 값이지만 항목의 원시값도 가질 수 있다.
 
//예)
 
enum School2: String{
    
    case primary = "유치원"
    case elementary = "초등"
    case middle = "중등"
    case high = "고등"
    case college = "대학"
    case university = "대학교"
    case graduate = "대학원"
}
 
 
 
let highestEducationLevel2: School2 = School2.university
print("저의 최종학력은 \(highestEducationLevel2)")
 
 
 
 
enum WeekDays: Character {
    
    case mon = "월", tue = "화", wed = "수", thu = "목", fri = "금", sat = "토", sun="일"  
    
}
 
 
 
let today: WeekDays = WeekDays.fri
print("오늘은 \(today)")
 
 
 
 
 
//열거형의 원시 값 일부 지정 및 자동 처리
 
 
enum School3: String{
    
    case primary = "유치원"
    case elementary = "초등"
    case middle = "중등"
    case high = "고등"
    case college 
    case university 
    case graduate
}
 
let level: School3 = School3.university
print("저의 최종학력은\(level.rawValue)")
 
print(School3.elementary.rawValue) // 초등학교
 
 
 
 
 
 
enum Numbers: Int {
    
    case zero
    case one
    case two
    case ten = 10
}
 
 
print("\(Numbers.zero.rawValue)")   // 0
 
 
//원시값을 통한 열거형 초기화
 
 
let one = Numbers(rawValue: 1);    //one
let three = Numbers(rawValue: 3); // nil
 
 
print("\(one)")
//print("\(three)") nil
 
 
 
 
 
//연관값을 갖는 열거형
 
enum MainDish{
    case pasta(taste: String)
    case pizza(dough:String, topping: String)
    case chicken(withSauce: Bool)
    case rice
}
 
var dinner: MainDish = MainDish.pasta(taste: "크림");
 
dinner = .pizza(dough: "치즈크러스트", topping:"불고기");
 
dinner = .chicken(withSauce: true
 
dinner = .rice //
 
 
 
 
 
 
 
 
 
 
 
cs


반응형

'ios 뽀개기 > 스위프트 정리' 카테고리의 다른 글

10. 옵셔널  (0) 2017.12.04
9. 연산자의 종류  (0) 2017.11.15
7. 튜플 배열 딕셔너리 셋 (복습)  (0) 2017.11.14
6. 복습정리  (0) 2017.11.14
5.함수 조건문 반복문  (0) 2017.11.08

댓글