- 이번 글에서는 Swift 언어에서의 enum에 대해 알아보도록 하겠다.
열거형 enum
- 열거형이란 그룹에 대한 연관된 값을 정의하고 사용하는 것이 가능한 타입을 말한다.
- 단, 스위프트에서의 열거형 enum은 항목 그 자체가 고유의 값으로,
- 해당 항목에 값을 매칭 시킬 필요가 없다.
- 열거형 enum에는 원시값(rawValue)이라는 형태로 실제값을 부여할수도 있다.
열거형 문법
enum <열거형 이름> {
case <열거 항목1>
case <열거 항목2>
case <열거 항목3>
}
enum CompassPoint {
case north
case south
case east
case west
}
var directionToHead = CompassPoint.west
열거형의 Switch문 사용
- 다음과 같이 열거형을 switch문을 활용해 사용할수 있다.
- 많은 경우, 열거형은 switch문과 함께 사용된다.
switch directionToHead {
case .north:
print("Lots of planets have a north")
case .south:
print("Watch out for penguins")
case .east:
print("Where the sun rises")
case .west:
print("Where the skies are blue")
}
Associated Values
- 열거형에는 다음과 같이 값을 지정하고 지정한 값을 불러올수도 있다.
enum Barcode {
case upc(Int, Int, Int, Int)
case qrCode(String)
}
var productBarcode:Barcode = Barcode.upc(8, 85909, 51226, 3)
productBarcode = .qrCode("ABCDEFGHIJKLMNOP")
switch productBarcode {
case .upc(let numberSystem, let manufacturer, let product, let check):
print("UPC: \(numberSystem), \(manufacturer), \(product), \(check).”)
case .qrCode(let productCode):
print("QR code: \(productCode).")
}
열거형의 원시값(Raw Values)
- 다음과 같이 열거형에 원시값을 지정해줄수도 있다.
enum ASCIIControlCharacter: Character {
case tab = "\t"
case lineFeed = "\n"
case carriageReturn = "\r"
}
enum Planet: Int {
case mercury=1, venus, earth, mars, jupiter, saturn, uranus, neptune
}
enum CompassPoint: String {
case north, south, east, west
}