Swift 5 Тип результата - PullRequest
       16

Swift 5 Тип результата

1 голос
/ 08 апреля 2019

В Swift 5 Apple ввела тип Result.Это общее перечисление для двух случаев:

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

Лично я использовал два отдельных завершения сетевых вызовов success: Completion и failure: Completion, но, как я вижу сейчас, Apple подталкивает нас к использованию одного завершения с Result тип, а затем внутри выполнить переключатель.Так в чем же преимущества этого подхода с Result?Потому что во многих случаях я могу просто пропустить обработку ошибок и не писать это switch.Благодаря.

1 Ответ

2 голосов
/ 08 апреля 2019

Не следует пропускать случаи, когда Result равно failure. Вы не должны делать это с Result, и вы не должны делать это с закрытием на случай неудачи. Вы должны обрабатывать ошибки .

В любом случае, тип Result был введен для упрощения обработчиков завершения. Вы можете иметь одно закрытие для обработки успеха или неудачи (основанное на первичном мнении, если два отдельных закрытия лучше или нет). Также Result предназначен для обработки ошибок. Вы можете просто создать свой собственный enum, соответствующий Error, и затем вы можете создать свои собственные случаи ошибок.

...