Почему бы вам использовать `init!` Вместо `init?` При реализации Failable Initializer в Swift?
Документация SwiftИнициализация: сбой инициализаторов детали как использоватьinit?
создать неисправный инициализатор, который является инициализатором, который возвращаетнеобязательный типа, который он инициализирует. Как и во всех опциях, это может бытьnil
или неnil
.
В документах также упоминается, что вы можете использоватьinit!
создать неисправный инициализатор, который возвращаетнеявно развернутый необязательный типа, который он инициализирует (см.Инициировать! Сбой инициализатора раздел). Это разворачивает необязательное и указывает, что «должно» быть неnil
, Если этоnil
и вы получили доступ к нему без проверки, что-то, что программист может пропустить, так как оно помечено как «должно быть неnil
msgstr "будет сгенерирована ошибка во время выполнения.
Два вопроса:
Когда / Почему бы вы использовалиinit!
вместоinit?
при реализации неудачного инициализатора?посколькуinit!
всегда возвращает неявно развернутый необязательный параметр, который «должен» бытьnil
почему бы вам просто не использоватьinit
вместоinit!
?