제라스의 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
반응형