관리 메뉴

사과하는 제라스

[Swift 문법] enum의 사용법 본문

제라스의 iOS 공부/Swift 문법

[Swift 문법] enum의 사용법

Xerath(제라스) 2023. 8. 16. 15:57

목차

    728x90
    반응형

    최근 부스트캠프를 하면서 정말 다른 언어에서 자주 써봤지만 가장 많이 헷갈렸던 타입이 열거형(enum)이었다.

    이에 대한 활용 정리가 필요할 것 같아서 정리해본다.

     

    // 이렇게 여러개의 case로 나눠서도 작성할 수 있고,
    enum Country {
    	case Seoul
        case Incheon
        case Daegu
        case Busan
    }
    
    // 이렇게 한번에 한 줄로 작성할 수도 있다.
    enum Country {
    	case Seoul, Incheon, Daegu, Busan
    }

    근데 만약에 내가 각 Case에 대해 값을 배정해두고 싶다면,

     

    // 이렇게 각 case에 대해 값을 배정해둘 수 있다.
    enum Country: Int {
    	case Seoul = 1
        case Incheon = 2
        case Daegu = 3
        case Busan = 4
    }

    또는 내가 각 case에 대해 서로 다른 return 값을 받고 싶다면, 다음과 같이 작성할 수도 있다.

     

    enum Country {
    	case Seoul(name: String)
        case Incheon(name: String)
        case Daegu(name: String)
        case Busan(name: String)
    }

    근데 이러면... 각 case에 따라 name을 받아오는 작업을 못할 수도 있잖아...?

    그럼 이렇게도 쓸 수 있다.

    enum Country {
    	case Seoul(name: String)
        case Incheon(name: String)
        case Daegu(name: String)
        case Busan(name: String)
        
        func getName()-> String {
        	switch self { // 스스로를 switch해보고 이 중 맞는 case 함수를 실행한다.
            case .Seoul(let name): // 이
                return name
            case let .Incheon(name):
                return name
            case let .Daegu(name):
                return name
            case .Busan(let name):
                return name
            }
        }
    }
    728x90
    반응형