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("입력이 잘못되었습니다.") 게임을 시작하기 전에 선택 항목을 받아 각자 다른 클래스를 실행시키는 식을 만들었다. 일단 각자의 식을 실행하려면 각기 다른 입력..
문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. func solution(_ n:Int) -> String { var result = "" for i in 0..
readLine().split(separator: “”)숫자 야구 게임을 진행하면서 사용자에게 입력 값을 받기 위해 readLine 을 사용하여 입력값을 넣을 수 있도록 구현하였다.하지만 내가 원하는건 사진과 같이 배열의 형태로 숫자를 넣는것이 아닌, 연결된 숫자로 넣기를 바랬다.하나하나 따로 저장해서 연결을해야할지 어떻게 진행을 해야하나 막막한 순간 구글링을 통해 split 메서드를 알아냈다. 이 코드는 사용자로부터 입력을 받고 각 문자를 separator: “” 값으로 분할하여 문자 배열로 만든다.이 코드를 사용하여 입력 받은 각 문자를 “” 로 지정하였더니 원하던 방식으로 값 입력이 가능해졌다.guard let input = readLine()?.split(separator: "") else { ..
제네릭 제네릭은 코드의 유연성과 재사용성을 높여주는 도구로서 함수, 메서드, 클래스, 구조체 열거형 등에서 사용할 수 있다. 제네릭을 사용하면 코드의 일부분을 일반화하여 데이터 타입이나 요구사항에 대한 명확한 정의 없이 다양한 종류의 데이터 타입을 처리할 수 있다. 타입 안정성(Type Safety) : 컴파일 시점에 타입 안정성을 보장합니다. 컴파일러는 제네릭 코드를 사용하여 잘못된 데이터 타입이 전달되는 것을 방지하고 실행 시점에서 발생할 수 있는 에러를 사전에 방지할 수 있다. 코드 재사용성(Reusability) : 동일한 로직을 다양한 데이터 타입에 대해 재사용할 수 있다. 제네릭을 사용하면 타입에 의존하지 않는 범용적인 코드를 작성할 수 있다. 유연성과 확장성(Flexibility and Sc..
문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. func solution(_ s:String) -> String { let middleIndex = s.index(s.startIndex, offsetBy: s.count / 2) if s.count % 2 == 0 { let startIndex = s.index(middleIndex, offsetBy: -1) let endIndex = s.index(middleIndex, offsetBy: 0) return String(s[startIndex...endIndex]) } else { return String(s[middleIndex]) } } middleIndex..
예외 처리 오류가 발생할 수 있는 코드 블록을 구분하고 오류에 대한 처리를 하는 방법 예외 처리는 ‘throw’ , ‘do-catch’ 그리고 ‘Error’ 프로토콜을 사용하여 이루어 진다. 1.에러처리 에러처리는 어떤 코드 블록에서 오류가 발생할 수 있는 상황을 정의하고, 이 오류를 처리하는 것을 의미한다. swift 에서는 ‘Error’ 프로토콜 을 준수하는 타입을 사용하여 오류를 표현한다. 2. Error 프로토콜 Error 프로토콜은 swift 에서 오류를 나타내기 위한 프로토콜이다. 사용자 정의 오류 타입을 만들때 이 프로토콜을 준수하도록 해야한다. enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coi..