if let 문 내 쉼표(,) 를 통한 다중 옵셔널 바인딩
if let choice = readLine(), let choiceInt = Int(choice) {
switch choiceInt {
case 1:
print("게임을 시작합니다.")
GameStart()
break
case 2:
print("<게임 기록 보기>")
GameRecords()
break
case 3:
print("숫자 야구 게임을 종료합니다.")
GameEnd()
break
default:
print("잘못된 입력입니다. 1, 2, 3 중에서 선택해주세요.")
}
} else {
print("입력이 잘못되었습니다.")
게임을 시작하기 전에 선택 항목을 받아 각자 다른 클래스를 실행시키는 식을 만들었다.
일단 각자의 식을 실행하려면 각기 다른 입력값을 받아 진행해야 하기 때문에 조건식을 이렇게 작성해봤다.
readLine() 은 이용자에게 입력값을 받는 것으로 아무것도 입력받지 않을 수 있기 떄문에 String? 으로 값을 받게 된다.
하지만 나는 switch문을 사용하여 Int 타입으로 각각의 case 를 지정하고 싶었기 때문에 입력 받은 옵셔널 String 값을 바인딩한 후 Int 타입으로 다시 변환하는 과정이 필요 했다.
if let choice = readLine(), let choiceInt = Int(choice)
이 방식은 if let 구문에서 쉼표(,) 는 여러개 옵셔널 바인딩을 동시에 수행할 수 있다.
이 점을 바탕으로 readLine() 에서 받은 String? 을 choice 에 바인딩 한 후 이 값을 Int(choice) 에 받아 다시 choiceInt 에 담는 과정을 통해 받은 String? 값을 Int 로 반환한다.
'◽️ Programming > T I L' 카테고리의 다른 글
Swift Architecture , MVC 개념 정리 (0) | 2024.03.15 |
---|---|
두 배열 내 요소 비교 ( contains , elementsEqual ) (0) | 2024.03.14 |
readLine().split 의 활용 방법 터득 (0) | 2024.03.13 |
Swift TIL (제네릭 , 비동기와 네트워킹 , DispatchQueue ) (0) | 2024.03.13 |
Swift TIL ( 예외처리 , ARC , 프로토콜 , Extension) (0) | 2024.03.12 |