// Enumeration (열거형)
📌 기본 열거형
// 연관된 항목들을 묶어서 표현할 수 있는 타입
enum School {
case primary //유치원
case elementary //초등학교
case middle //중학교
case high //고등학교
case college //대학교
}
📌 한 줄로 열거형 선언하기
enum Food {
case milk, kimchi, chicken, pizza
}
📌 열거형 변수의 생성 및 값 변경
var highestEducationLevel: School = School.high
//var highestEducationLevel: School = .high
print(highestEducationLevel)
// -> high
// 같은 타입인 School 내부의 항목으로만 highestEducationLevel의 값을 변경가능
highestEducationLevel = .college
print(highestEducationLevel)
// -> college
📌 Raw Value (원시값)
// 특정 타입으로 지정된 값을 가질 수 있다.
enum Fruit: String {
case apple = "사과"
case melon = "메론"
case strawberry = "딸기"
case pear = "배"
}
let myFavoriteFruit: Fruit = Fruit.strawberry
print("제가 가장 좋아하는 과일은 \(Fruit.strawberry.rawValue)입니다.")
///제가 가장 좋아하는 과일은 딸기입니다.
enum WeekDays: Character {
case mon = "월", tue = "화", wed = "수", thu = "목", fri = "금", sat = "토", sun = "일"
}
let today: WeekDays = WeekDays.fri
print("오늘은 \(today.rawValue)요일 입니다.")
/// 오늘은 금요일 입니다.
📌 연관값
enum PastaTaste {
case cream, tomato
}
enum PizzaDough {
case cheeseCrust, thin, original
}
enum PizzaTopping {
case pepperoni, cheese, bacon
}
enum MainDish {
case pasta(taste: PastaTaste)
case pizza(dough: PizzaDough, topping: PizzaTopping)
case chicken(withSauce: Bool)
case rice
}
var dinner: MainDish = MainDish.pasta(taste: PastaTaste.tomato)
dinner = MainDish.pizza(dough: PizzaDough.cheeseCrust, topping: PizzaTopping.bacon)
📌 항목순회
enum School: String, CaseIterable{
case primary //유치원
case elementary //초등학교
case middle //중학교
case high //고등학교
case college //대학교
}
let allCases: [School] = School.allCases
print(allCases)
// 단순하게 print함수만 사용할 경우 메모리영역까지 출력이 됨
/// [__lldb_expr_11.School.primary, __lldb_expr_11.School.elementary, __lldb_expr_11.School.middle, __lldb_expr_11.School.high, __lldb_expr_11.School.college]
// 값들만 보기위해서는 for문을 이용해서 print해야함
for val in allCases {
print(val)
}
////순환열거형
////비교가능한 열거형
'모바일앱 > Swift' 카테고리의 다른 글
날짜 계산하기 (0) | 2021.12.11 |
---|---|
structures and Classes (+ enum) (0) | 2021.12.09 |
Loops (반복문) (0) | 2021.12.08 |
조건문(IF, Switch) (0) | 2021.12.08 |
Array (0) | 2021.12.08 |
Day11_extra_Tuple (0) | 2021.12.07 |
Day10 closure (0) | 2021.12.03 |
Day09 generic (0) | 2021.12.03 |