Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Result타입에 대해 설명하시오. #12

Open
hyesuuou opened this issue Oct 3, 2021 · 3 comments
Open

Result타입에 대해 설명하시오. #12

hyesuuou opened this issue Oct 3, 2021 · 3 comments
Labels

Comments

@hyesuuou
Copy link
Member

hyesuuou commented Oct 3, 2021

No description provided.

@hyesuuou hyesuuou added the Swift label Oct 3, 2021
@hyesuuou hyesuuou self-assigned this Oct 3, 2021
@hyesuuou hyesuuou removed their assignment Oct 3, 2021
@hyesuuou
Copy link
Member Author

hyesuuou commented Oct 6, 2021

Result 타입이란 Swift5에서부터 Standard library에 추가되었으며, Generic Enumeration으로 선언되어 success 또는 failure 두가지 case를 포함하는 타입입니다. 여기서 success는 별도의 제약 조건이 없지만, failure같은 경우에는 Error를 상속받은 타입이어야만 합니다. Result 타입은 성공과 실패에 대한 반환값을 사용하고 싶은 경우에 사용합니다.

@heerucan
Copy link

Swift5에서 새롭게 추가된 에러 처리 방식으로 Generic Enumeration으로 선언됩니다.
success에는 작업의 결과가 저장되고, failure에는 에러가 저장됩니다.
에러 형식이 명시적으로 선언되고, 형식추론으로 에러 처리 코드가 간단하며 성공, 실패로 명확한 구분이 가능하다는 장점이 있습니다.

@Taehyeon-Kim
Copy link
Contributor

enum Result<Success, Failure: Error> {
    case success(Success)
    case failure(Failure)
}

Result 타입은 Swift 5부터 사용할 수 있는 타입으로, Generic Enumeration 형태로 선언되어 있다. 기존의 네트워크 요청을 좀 더 Clean하게 할 수 있다는 장점이 있다.

Success에는 데이터가 담기고, 이 때 특별한 제약 조건은 없다. Failure에는 에러 값이 담기게 된다. 이 때 Failure 경우 반드시 Error를 상속받은 타입이어야만 한다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants