같은 주제로 연관된 데이터들을 멤버로 구성하여 나타내는 자료형
💬 공통된 주제에 대해, 정해놓은 입력값
만 선택해 받고 싶을 때 사용함
enum
명칭
{ casen1
,n2
,n3
... }
enum
명칭
{ casen1
, casen2
, casen3
... }
ex) 학교 - 초, 중, 고
enum School {
case elementary
case middle
case high
}
.(점문법)
let yourSchool = School.high
print("yourSchool: \(yourSchool)")
⭐️ 참고 : 변경되는 값(변수)은 var
↔️ 변경되지 않는 값(상수)은 let
Raw value
)하고 싶을 때, 총 3가지 자료형 활용 가능함number type | character type | string type |
---|
enum
명칭
:자료형 타입
{ casen1
=값
... }
ex)
enum Grade : Int {
case first = 1
case second = 2
}
let yourGrade = Grade.second
print("yourGrade : \(yourGrade)")
>>> yourGrade : second
.rawValue
print("yourGrade : \(yourGrade.rawValue)")
>>> yourGrade : 2
enum
명칭
{ casen1
(입력할 값은...
:자료형
) ... }
ex)
enum SchoolDetail1 {
case elementary(name: String) // 데이터 지정
case middle(name: String)
case high(name: String)
}
let yourMiddleSchoolName = SchoolDetail1.middle(name: "몽이중학교")
print("yourMiddleSchoolName: \(yourMiddleSchoolName)")
>>> yourMiddleSchoolName: middle(name: "몽이중학교")
메서드
만들기ex)
enum SchoolDetail {
case elementary(name: String)
case middle(name: String)
case high(name: String)
func getName() -> String { // 메서드 (함수)
switch self {
case .elementary(let name): // 1. 이렇게 쓸 수도
return name
case let .middle(name): // 2. 이렇게 쓸 수도 있다
return name
case .high(let name):
return name
}
}
}
let yourMiddleSchoolName = SchoolDetail.middle(name: "몽이중학교")
print("yourMiddleSchoolName: \(yourMiddleSchoolName.getName())")
>>> yourMiddleSchoolName: 몽이중학교
💬 메서드 내의 switch, case는 아직 익숙치 않아도 많이 써보고 익히자