Enumeration Case Pattern

작성일

Enumeration Types

Enumeration Case Pattern

enum Transportation {
  case bus(number: Int)
  case taxi(company: String, number: String)
  case subway(lineNumber: Int, express: Bool)
}

var tpt = Transportation.bus(number: 7)

switch tpt {
  case .bus(let n):
    print(n)
  case .taxi(let c, var n):
    print(c, n)
  case let .subway(l, e):
    print(l, e)
}

tpt = Transportation.subway(lineNumber: 2, express: false)

// 2호선만 확인하고싶을 떄
if case let .subway(2, express) = tpt {
  if express {

  } else {

  }
}

// 급행지하철만 확인하고싶을 떄
if case .subway(_, true) = tpt {
  print("express")
}

이런방식으로 enum타입을 활용해서 조건문과 반복문에서 연관 값을 매칭 시킬 수 있다.