안녕하세요, Annie 입니다 :)
기존에 만들었던 신조어앱을 enum을 이용하여 개선하였습니다.
그래서 오늘은 enum 타입의 원시값인 RawValue에 대해서 공부해보겠습니다.
열거형(enum) 이란 연관된 값을 그룹으로 묶어서 사용할 수 있는 타입 입니다.
이 각각의 값에는 rawvalue 라는 값을 추가로 제공할 수 있는데 이 경우에
rawvalue라는 원시값은 string, character, integer, float 이 될 수 있습니다.
enum은 주로 한정적인 값을 그룹으로 묶어야 하는 경우에 사용되며
기본 형태는 아래와 같습니다.
enum Person {
case Name
case Age
case Weight
case Height
}
말했듯이 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
}
원시값을 사용예시를 보여주기 위해 신조어 앱의 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이 은근 헷갈려서
이렇게 포스팅으로 정리해보았습니다☺️