The Swift Programming Language를 읽어보던 중
enum의 rawValue를 사용하면
왜 옵셔널 값으로 나오는지가
궁금해서 알아봤다
아래는 해당 코드
enum Rank: Int {
case ace = 1
case two, three, four, five, six, seven, eight, nine, ten
case jack, queen, king
func simpleDescription() -> String {
switch self {
case .ace:
return "ace"
case .jack:
return "jack"
case .queen:
return "queen"
case .king:
return "king"
default:
return String(self.rawValue)
}
}
}
Print(Rank(rawValue: 3))
이 코드에서 프린트 문은
Optional(Rank.three)로 나오게 되는데
이는 rawValue가 enum의 케이스 중에서
일치하지 않는 경우가 있을 있기 때문에
optional로 찍히게 된다
if let convertedRank = Rank(rawValue: 3) {
let threeDescription = convertedRank.simpleDescription()
print(threeDescription)
}
따라서
if let을 사용해서 Optional 인지 체크해주고
Enum의 펑션인
simpleDescription() 메소드를 써주면
3이 프린트로 찍힌다
'Swift' 카테고리의 다른 글
Swift) Error Handling(오류 처리)를 알아보자 (1) | 2024.01.31 |
---|---|
Swift) Struct와 Class: mutating의 역할 (0) | 2024.01.30 |
XCode) 커스텀 단축키: 커서 바로 밑, 위에 라인 추가하기 (2) | 2024.01.21 |