728x90
Result ํ์ ์ด๋
enum Result<Success, Failure: Error> {
case success(Success)
case failure(Failure)
}
- Generic Enumeration์ผ๋ก ์ ์ธ๋์ด success ๋๋ failure ๋๊ฐ์ง case๋ฅผ ํฌํจํ๋ ํ์ ์ ๋๋ค.
- Result ํ์ ์ ์ฑ๊ณต๊ณผ ์คํจ์ ๋ํ ๋ฐํ๊ฐ์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ์ ์ฌ์ฉํฉ๋๋ค. ( = success์๋ ์์ ์ ๊ฒฐ๊ณผ๊ฐ ์ ์ฅ๋๊ณ , failure์๋ ์๋ฌ๊ฐ ์ ์ฅ๋ฉ๋๋ค.)
- Failure๋ Error๋ฅผ ์์๋ฐ์ ํ์ ์ด์ด์ผ๋ง ํฉ๋๋ค.
- Swift5์์๋ถํฐ Standard library์ ์ถ๊ฐ๋์์ต๋๋ค.
์ฅ์
- ๊ฐ๋ ์ฑ ์ฆ๊ฐ: ๊ฒฐ๊ณผ์ ์ฑ๊ณต, ์คํจ ์ฌ๋ถ์๋ ์๊ด์์ด ํ๋๋ก ๊ฒฐ๊ณผ๋ฅผ ํํํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๊ธธ์ด ๋จ์ถ: optional ํ์ ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์, unwrap ์ ์ํ ์ฝ๋๋ฅผ ์์ฑํ์ง ์์๋ ๋ฉ๋๋ค.
- ๊น๋ํ ์ฝ๋: ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ํ๊ฒ ๋๋ฉด throws, throw, do-catch, try ๋ฑ์ ์ฌ๋ฌ ํค์๋๋ค์ ์ฌ์ฉํด์ ๋ก์ง์ ์์ฑํด์ผ ๋์ง๋ง Result<>๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ํค์๋๋ค์ ์ฌ์ฉํ์ง ์๊ณ ๋น๊ต์ ๊น๋ํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ๋ช ํ์ฑ: ์๋ฌ ํ์์ด ๋ช ์์ ์ผ๋ก ์ ์ธ๋๊ณ , ํ์์ถ๋ก ์ผ๋ก ์๋ฌ ์ฒ๋ฆฌ ์ฝ๋๊ฐ ๊ฐ๋จํ๋ฉฐ ์ฑ๊ณต, ์คํจ๋ก ๋ช ํํ ๊ตฌ๋ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
https://developer.apple.com/documentation/swift/result
728x90
'๐ Apple > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] mutating | ํ๋กํผํฐ์ ๋ณํ๊ฐ ์์ ๊ฑฐ์ผ! (0) | 2024.01.10 |
---|---|
[Swift] DI(Dependency Injection) ์์กด์ฑ ์ฃผ์ - ํ๋กํ ์ฝ (0) | 2023.12.30 |
[Swift] dropFirst()์ removeFirst()์ ์ฐจ์ด (0) | 2023.09.01 |
[Swift] Property Wrapper (0) | 2023.04.23 |
์ฑ๊ธํค ์ฌ์ฉ ์ private init() ํ๋ ์ด์ (0) | 2022.11.21 |