반응형
enum
1. enum 선언하기
2. 값을 가질 수 있다.
3. 파라미터를 가질 수 있다.
4. enum안에 함수를 만들어 사용할 수 있다.
import UIKit
// #1
// 학교 - 초, 중, 고
enum School {
// case elementary
// case middle
// case high
case elementary, middle, high
}
let yourSchool = School.high
print("yourSchool : \(yourSchool)")
//print("yourSchool:", yourSchool)
//-> yourSchool: high
//#2 enum은 값을 가질 수 있다.
enum Grade: Int {
case first = 1
case second = 2
}
//let yourGrade = Grade.second
//print("yourGrade : \(yourGrade)")
// -> yourGrade : second
//let yourGrade = Grade.second
//print("yourGrade : \(yourGrade.rawValue)")
// -> yourGrade : 2
let yourGrade = Grade.second.rawValue
print("yourGrade : \(yourGrade)")
// -> yourGrade : 2
//#3 case에 파라미터를 넣어서 가져올 수 있다.
enum SchoolDetail {
case elementary(name: String)
case middle(name: String)
case high(name: String)
//나 자신의 케이스의 값을 가져올 수 있다.
// 만약에 나 자신이 @@이라면? @@ 하겠다.
func getName() -> String {
switch self {
case.elementary(let name):
return name
case let .middle(name):
return name
case .high(let name):
return name
}
}
}
let yourMiddleSchoolName = SchoolDetail.middle(name: "기꼬중학교")
print("yourMiddleSchoolName: \(yourMiddleSchoolName)")
//-> yourMiddleSchoolName: middle(name: "기꼬중학교")
// 이름을 그냥 가져올 수 없을까? -> enum 안에 있는 함수를 가져올 수 있다.
let yourHighSchoolName = SchoolDetail.high(name: "기꼬고등학교")
print("yourHighSchoolName: \(yourHighSchoolName.getName())")
// -> yourHighSchoolName: 기꼬고등학교
반응형
'모바일앱 > Swift' 카테고리의 다른 글
Day07 property_observer (0) | 2021.12.02 |
---|---|
Day06 class_struct (0) | 2021.11.30 |
Day05 Unwrap_Optional (0) | 2021.11.29 |
Day04 For_Loops (0) | 2021.11.29 |
Day02 : For-each(자료 보강 필요) (0) | 2021.11.28 |
Day01 : Conditional Statements_If (0) | 2021.11.26 |
생성자 이해하기, 2-phase Initialization, Convenience Initializer (0) | 2021.10.20 |
클래스상속은 언제 하면 좋을까? (0) | 2021.10.19 |