Почему бы вам использовать `init!` Вместо `init?` При реализации Failable Initializer в Swift?

Документация SwiftИнициализация: сбой инициализаторов детали как использоватьinit? создать неисправный инициализатор, который является инициализатором, который возвращаетнеобязательный типа, который он инициализирует. Как и во всех опциях, это может бытьnil или неnil.

В документах также упоминается, что вы можете использоватьinit! создать неисправный инициализатор, который возвращаетнеявно развернутый необязательный типа, который он инициализирует (см.Инициировать! Сбой инициализатора раздел). Это разворачивает необязательное и указывает, что «должно» быть неnil, Если этоnil и вы получили доступ к нему без проверки, что-то, что программист может пропустить, так как оно помечено как «должно быть неnilmsgstr "будет сгенерирована ошибка во время выполнения.

Два вопроса:

Когда / Почему бы вы использовалиinit! вместоinit? при реализации неудачного инициализатора?посколькуinit! всегда возвращает неявно развернутый необязательный параметр, который «должен» бытьnilпочему бы вам просто не использоватьinit вместоinit!?

Ответы на вопрос(3)

Ваш ответ на вопрос