본문 바로가기
Swift/기초

39. 스위프트 기초 문법[Modeling(5) - Camp 모델 개선]

by UDDT 2025. 2. 18.

Nested Type(중첩된 타입)

   1.  열거형 코드의 위치를 status 위쪽으로 이동하여 중첩

  2. status가 Camp Type 안에 있기 때문에 Camp를 생략해도 됨      * scope 밖에서는 Camp.campStatus로만 호출 가능

 

  3. Camp.campStatus처럼 이름이 중복되면, 이름을 변경함

 

 

raw Value(원시 값)

   1. 문법

enum TypeName: RawValueType {
	case caseName = Value
}

/*
RawValueType : String, Character, Number Types만 가능
Value는 생략해도 되는데, Type마다 정해진 값이 있음
*/

 

   2. 원시값을 Int로 선언했을 때

 

enum Alignment: Int {
    case left             //0이 자동으로 저장
    case right  = 100     //100을 직접 저장
    case center           // 101을 자동으로 저장
}

Alignment.left.rawValue        //0
Alignment.right.rawValue       //100
Alignment.center.rawValue      //101

Alignment(rawValue: 0)          //.left
Alignment(rawValue: 200)        // nil

/*
자동으로 저장되는 숫자는 이전 값에서 +1
원시 값에 값을 정한 뒤에는 새로운 값을 저장할 수는 없음
Alignment.left.rawValue = 10  이런 코드는 실행이 불가능함
*/

   

  3. 원시값을 String으로 선언했을 때

enum Weekday: String {
    case sunday
    case monday
    case tuesday
    case thursday
    case friday
    case saturday
}

Weekday.sunday.rawValue       // "sunday"

 

원시값을 활용해 Status 개선하기

  1. Status에서 Raw Value Type 추가

 

 

  2. 원시 값 설정

 

  3. 가독성 높이기

 

  4. switch 코드 대체

최근댓글

최근글

skin by © 2024 ttuttak