15: review and optional try

그루두·2024년 4월 24일
0

100 days of SwiftUI

목록 보기
24/108

100 days of swiftui: 15
https://www.hackingwithswift.com/100/swiftui/15

오늘은 여태 배운 것을 다시 리뷰하는 시간이었다.

100 days of swiftui: How to handle function failure with optionals
https://www.hackingwithswift.com/quick-start/beginners/how-to-handle-function-failure-with-optionals

리뷰 도중 어제 이해하지 못한 optional try를 그나마 이해하게 되어서 이해한 대로 정리한다.

optional try

만약 프로그램 도중 에러가 발생해서 프로그램을 중단하는 것이 아닌, 에러가 발생했는지 여부가 중요한 것이라면 optional try이를 통해 optional을 반환하는 함수를 활용할 수도 있다. 함수 실행 중에 에러가 발생하지 않는다면 의도한 값이 반환될 것이고, 에러가 발생한다면 nil을 반환할 것이다.

optional try는 throws 함수 앞에 try?를 입력하고, 에러가 발생했을 때 혹은 에러 발생이 일어나지 않았을 때의 코드를 작성하면 된다.

enum UserError: Error {
    case tooBig
}

func getUser(id: Int) throws -> String{
    if id > 100 {
        throw UserError.tooBig
    } else {
        return "Appropriate id"
    }
}

// 1
if let user = (try? getUser(id: 100)) {
    print("User: \(user)")
}

// 2
let user = (try? getUser(id: 1000)) ?? "Anonymous"
print(user)

결과:

User: Appropriate id
Anonymous

1의 경우 만약 getUser()의 반환값이 에러가 아니라면 user에 관한 문장을 출력한다. 2의 경우 getUser()의 반환값이 에러가 아니라면 그 반환값을 user에 할당하고, 에러라면 "Anonymous"를 할당한다.

profile
계속 해보자

0개의 댓글

관련 채용 정보