[Swift] 열거형 원시값 (Enum Rawvalue)

Annie Kang·2022년 7월 13일
0

Swift

목록 보기
4/9

안녕하세요, Annie 입니다 :)

기존에 만들었던 신조어앱을 enum을 이용하여 개선하였습니다.
그래서 오늘은 enum 타입의 원시값인 RawValue에 대해서 공부해보겠습니다.


1. Enum 이란?

열거형(enum) 이란 연관된 값을 그룹으로 묶어서 사용할 수 있는 타입 입니다.
이 각각의 값에는 rawvalue 라는 값을 추가로 제공할 수 있는데 이 경우에
rawvalue라는 원시값은 string, character, integer, float 이 될 수 있습니다.

enum은 주로 한정적인 값을 그룹으로 묶어야 하는 경우에 사용되며
기본 형태는 아래와 같습니다.

enum Person {
	case Name
    case Age
    case Weight
    case Height
}

2. RawValue(원시값)

말했듯이 enum의 형태에는 원시값을 추가 할 수 있습니다.
주로 string, integer를 이용하며 원시값을 추가 하는 것은 enum 값 옆에
적어주면 됩니다.

enum Person {
	case Name = "Annie"
    case Age = 20
    case Weight = 80
    case Height = 180
}

이렇게 옆에다 아무 값이나 원시값으로 쓰면,

아래와 같이 에러가 납니다.
enum cannot have a raw alue if the enum does not have a raw type
인데요 !

바로 원시값을 주기 위해선 enum 이름 옆에 원시값의 type을 적어주어야 합니다.
type은 한 가지만 되기 때문에 위에 적은 것처럼 "Annie"라는 string 과 Int를
혼합해서 적을 수 없습니다.

따라서, 아래와 같이 고쳐줘야 합니다.

enum Person : Int {
	case Name = 10
    case Age = 20
    case Weight = 80
    case Height = 180
}

3. RawValue 사용법

원시값을 사용예시를 보여주기 위해 신조어 앱의 enum 부분을 가져왔습니다.

enum NewlyCoinedWord : String {
        case 애빼시 = "애교 빼면 시체"
        case 킹받네 = "완전 열받는다는 뜻"
        case 갓생 = "신(God)처럼 멋진 삶을 의미함"
        case 댕댕이 = "강아지"
        case 쌉가능 = "완전 가능하다는 뜻"
        case 꾸안꾸 = "꾸민듯 안꾸민듯 꾸밈"
    }
    

String rawValue를 적어서 같이 사용할 수 있도록 짝을 맞췄습니다.

switch questionTextField.text {
        case "애빼시" :
            answerLabel.text! = NewlyCoinedWord.애빼시.rawValue
            appendHashtag()
        case "갓생" :
            answerLabel.text! = NewlyCoinedWord.갓생.rawValue
            appendHashtag()
        case "꾸안꾸" :
            answerLabel.text! = NewlyCoinedWord.꾸안꾸.rawValue
            appendHashtag()
        case "댕댕이" :
            answerLabel.text! = NewlyCoinedWord.댕댕이.rawValue
            appendHashtag()
        case "쌉가능" :
            answerLabel.text! = NewlyCoinedWord.쌉가능.rawValue
            appendHashtag()
        case "킹받네" :
            answerLabel.text! = NewlyCoinedWord.킹받네.rawValue
            appendHashtag()
        default :
            answerLabel.text! = "다시 입력하시오"
        
        }

"NewlyCoinedWod.꾸안꾸.rawValue" 라고 적어 RawValue값을 불러올 수 있습니다.
enum 이름.case.rawValue 라는 형식으로 원시값을 불러 올 수 있습니다.

결과는 아래와 같이 확인 할 수 있듯이 밑에 라벨 부분에
꾸안꾸의 뜻이 나오게 됩니다. enum으로 짝 지은 원시값이 나오게 되는 것이죠 !


오늘은 enum의 원시값에 대해 알아봤습니다.

원시값을 이용해서 코드를 바꿔보니 알고있다고 생각했던 enum이 은근 헷갈려서
이렇게 포스팅으로 정리해보았습니다☺️

profile
성장하는 iOS 개발자

0개의 댓글

관련 채용 정보