12. enum
열거형
열거형은 연관성 있는 항목들을 묶어놓은 것으로, enum
키워드를 통해 정의할 수 있으며 그 내부에서는 case
키워드로써 항목 분류를 할 수 있다. 만약 어떤 변수에 열거형으로 정의하는 항목을 대입하면, 그 다음부터는 해당 변수에 .
만 작성하여도 열거형을 알아서 추론해준다.
enum 자동추론
enum CompassPoint {
case north, south
case east
case west
}
var direction = CompassPoint.east
// east
direction = .west
// west
enum과 switch문
열거형은 switch
구문과 함께 사용하면 효과적이다.
enum CompassPoint {
case north, south, east, west
}
var direction = CompassPoint.north
// north
switch direction {
case .north:
print("north")
case .south:
print("south")
case .east:
print("east")
case .west:
print("west")
}
// "north"
enum과 원시값
열거형 항목에 원시값을 맵핑하기 위해서는 타입을 명시하면 된다.
enum CompassPoint: String {
case north = "북"
case south = "남"
case east = "동"
case west = "서"
}
var direction = east
// east
switch direction {
case .north:
print(direction.rawValue)
case .south:
print(direction.rawValue)
case .east:
print(direction.rawValue)
case .west
print(direction.rawValue)
}
// "동"
enum과 연관값 추출
enum을 자동추론시킬 수도 있지만, 그 반대로 연관값을 추론할 수도 있다.
let direction2 = CompassPoint(rawValue: "남")
// south
enum PhoneError {
case unknown
case batteryLow(String)
}
let error = PhoneError.batteryLow("배터리가 곧 방전됩니다")
// batteryLow("배터리가 곧 방전됩니다")
switch error {
case .batteryLow(let message):
print(message)
case .unknown:
print("알 수 없는 에러입니다")
}
// "배터리가 곧 방전됩니다"
Author And Source
이 문제에 관하여(12. enum), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lattepapa/12.-enum저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)