8일 차: SwiftUI의 100일

기본값, 던지는 함수 및 체크포인트 4



https://www.hackingwithswift.com/100/swiftui/8

함수 기본값



함수 매개 변수가 선택적일 수 있는 경우가 있을 수 있습니다. 즉, 매개 변수 값이 default이므로 작성할 코드가 줄어듭니다.

func multiplicationTable(for number: Int, end: Int = 10) {
    for i in 1...end {
        print("\(i) x \(number) is \(i * number)")
    }
}

multiplicationTable(for: 5, end: 20)
multiplicationTable(for: 8)


위의 코드에서 매개변수 end의 기본값은 10 입니다. 따라서 종료 값이 10인 함수만 호출하려는 경우 end 를 생략할 수 있습니다.

오류 처리



함수는 오류를 발생시킬 수 있으며 Swift는 이러한 오류를 처리하여 코드가 충돌하지 않도록 합니다. 오류 처리는 3단계를 거칩니다.
  • 발생할 수 있는 오류를 정의하는 열거형을 만듭니다.
  • 필요에 따라 함수 내에서 이러한 오류를 발생시킵니다.
  • do , trycatch 를 사용하여 호출 사이트에서 처리합니다.

  • enum PasswordError: Error {
        case short, obvious
    }
    
    func checkPassword(_ password: String) throws -> String {
        if password.count < 5 {
            throw PasswordError.short
        }
    
        if password == "12345" {
            throw PasswordError.obvious
        }
    
        if password.count < 8 {
            return "OK"
        } else if password.count < 10 {
            return "Good"
        } else {
            return "Excellent"
        }
    }
    
    
    let password = "12345"
    
    do {
        let result = try checkPassword(password)
        print("Password rating: \(result)")
    } catch PasswordError.short {
        print("Please use a longer password.")
    } catch PasswordError.obvious {
        print("I have the same combination on my luggage!")
    } catch {
        print("There was an error: \(error.localizedDescription)")
    }
    
    


    체크포인트 4



    정수 제곱근



    문제는 1부터 10,000까지의 정수를 받아들이고 해당 숫자의 정수 제곱근을 반환하는 함수를 작성하는 것입니다. 쉽게 들리지만 몇 가지 주의 사항이 있습니다.
  • Swift의 내장 sqrt() 함수 또는 이와 유사한 기능을 사용할 수 없습니다. 직접 제곱근을 찾아야 합니다.
  • 숫자가 1보다 작거나 10,000보다 크면 "out of bounds"오류가 발생합니다.
  • 정수 제곱근만 고려해야 합니다. 예를 들어 3의 제곱근이 1.732인 것에 대해 걱정하지 마십시오.
  • 제곱근을 찾을 수 없으면 "루트 없음"오류가 발생합니다.

  • 해결책

    좋은 웹페이지 즐겨찾기