Цель принудительной распаковки
В быстрой документации вы можете найти это:
if convertedNumber != nil {
println("convertedNumber has an integer value of \(convertedNumber!).")
}
// prints "convertedNumber has an integer value of 123."
С этим объяснением
Убедившись в том, что дополнительный компонент содержит значение, вы можете получить доступ к его базовому значению, добавив восклицательный знак (!) В конце имени дополнительного элемента. Восклицательный знак фактически говорит: «Я знаю, что эта опция определенно имеет значение; пожалуйста, используйте его ». Это называется принудительным развертыванием значения необязательного кода:
Хорошо, понял, но в чем его польза? Не было бы то же самое, если бы я не принудительно развернул, как:
if convertedNumber != nil {
println("convertedNumber has an integer value of \(convertedNumber).")
}
// prints "convertedNumber has an integer value of 123."
Спасибо, что просветили меня :)