라벨이 Enum인 게시물 표시

Swift에서 Enum을 활용하는 10가지 방법

이미지
개발을 하고, 리팩토링을 하다보면 Enum을 썼을 때 좋은 결과를 얻은 경험이 많습니다. 그러나 너무 남발하게되면 또 코드가 더러워져서 어떻게 응용하면 좋을지 정리해 보도록 하겠습니다. 다음 아티클 을 보고 가져온 코드도 있고, 이해했는지 검증하기 위해 새로 짠 코드들도 있습니다. enum이 무엇인지 문법을 알지만 어떻게 활용해야 할지 모르는 분들 미래의 나를 위해 작성했습니다 프로퍼티 활용방법 enum에는 stored properties 를 만들 수 없습니다 즉 변수를 선언해서 할당할 수 없다는 뜻이죠. 하지만 computed properties 는 선언해서 활용할 수 있습니다. 예제 코드를 보여드릴게요 enum Food { case korean case japanese var name: String { switch self { case . korean: return "kimchi" case . japanese: return "sushi" } } } let todaysLunch = Food.korean.name print(todaysLunch) / / kimchi 위와 같이, 음식의 종류를 정했다면, 저장 프로퍼티인 name 을 만들어서 각각의 값을 저장 해 줄 수 있습니다. 저는 enum에 String을 지정해서 return을 해주려고 했었는데 이 방법이 훨씬 깔끔한 것 같아요. 각각에 변수마다 필요한 값들을 내려주는 것이 명확하네요 메소드 활용방법 프로퍼티 말고 메소드도 enum에 정의해서 활용할 수 있습니다. 아래의 예시를 통해 설명 드리도록 하겠습니다. enum Food { case korean case japanese func description () -> String {

[swift] enum 타입의 사용법 정리

이미지
[swift] enum 타입의 사용법 정리 Enumerations “열거” 임의의 관계를 맺는 값들을 하나의 타입으로 묶은 타입이다. 사용법 enum Fruits { case banana case apple case melon case tomato } 타입지정 각각의 사례항목의 값을 지정하려면 타입을 지정하면 된다. enum Fruits: String { case banana case apple case melon case tomato } // Fruits.banana.rawValue == "banana" 구분 Enum 이름이 다르기 때문에 같은 이름과 타입을 가졌어도 구분할 수 있다. enum SomeEnums: Int{ case one, two, three, four } enum AnotherEnums: Int { case one, two, three, four } var a: SomeEnums = .one // 타입이 분명하므로 헷갈릴 염려가 없다. 케이스 매칭 enum의 항목의 값을 구분해서 쓸 때는 주로 switch case문을 사용한다. let myFavorite: Fruits = .banana switch myFavorite { case .banana print(.banana) case .apple print(.apple) case .melon print(.melon) case .tomato print(.tomato) } 연관값 연관값은 사례항목마다 각 타입값을 다르게 할 수 있다. 바코드를 정의하는 방법은 2가지가 있을 수 있다. 1차원과 2차원. enum을 사용하면, 이렇게 2종류의 타입을 정의 할 수 있다. enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } var productB