밤에 쓴 코드

Swift) 열거형 - Enumeration 본문

Swift

Swift) 열거형 - Enumeration

붱이🦉 2019. 4. 5. 15:06

enum


switch 구문을 사용시 수 많은 값이 입력될수 있음을 예측한다.
enum을 이용하면 더 적은 사항을 컴퓨터가 고려할 수 있습니다.

  • 하나로 연관된 주제를 하나의 타입으로 묶어서 사용
  • 조금더 안전한 방식으로 다룰 수 있게 해준다.

상황

  • 제한된 값 만 입력받고 싶을 때
  • 제한된 값만 선택할수 있게 제한하고싶을 때

예시


//   열거형 : rawValue
enum Unit : String {
    case    cm =   "cm"
    case    m =    "m"
    case inch = "inch"
    case yard = "yard"

    case g  = "g"
    case kg = "kg"
    case oz = "oz"
    case lb = "lb"


    // 함수도 내포할수 있다
    func defaultUnit ()->Unit{

        switch self {
        case .cm,.m,.inch,.yard:
            return .m
        case .g,.kg,.oz,.lb:
            return .kg
        case .error:
            return .error
        }
    }
}
  • rawValue: 열거형 해당 case에 관련된 값

Associated Values

  • 열거형 케이스에 추가적인 정보를 내포할수있게한다.
    enum image{
        //              알파값이 필요하다
        case png(Int,Int,Double)
        case jpeg(Int,Int)
        ...
    }

enum 은 내부적으로 enum을 내포할수 있다.

  • 조금더 논리적으로 계층적인 구조를 표현하기 좋다

      enum Unit{
          enum Length{
              case cm,m,inch,yard(Double)
          }
          enum Volume{
              case L,pt,qt,gal(Double)
          }
          enum Weight{
              case g,kg,oz,lb(Double)
          }
      }
    
      let input = Unit.Volume.L(100)

'Swift' 카테고리의 다른 글

Swift) POP - Protocol Oriented Programming  (1) 2019.04.25
Swift) Extension - 익스텐션  (0) 2019.04.25
Swift) 옵셔널 - Optional  (0) 2019.04.18
Swift) 프로토콜 - Protocol  (0) 2019.04.11
Swift) 구조체/변수/상수  (0) 2019.04.08
Comments