Я понимаю, что в Swift все переменные должны быть установлены со значением, и что, используя дополнительные параметры, мы можем установить переменную, которая будет установлена nil
изначально.
Я не понимаю, что происходит при установке переменной с помощью !
, потому что у меня создалось впечатление, что это "разворачивает" значение из необязательного. Я думал, что таким образом вы гарантируете, что в этой переменной есть значение, которое нужно развернуть, поэтому в IBActions и т. Д. Вы видите, что оно используется.
Проще говоря, какая переменная инициализируется, когда вы делаете что-то вроде этого:
var aShape : CAShapeLayer!
И зачем / когда мне это делать?
Ответы:
В объявлении типа объект
!
похож на?
. Оба являются необязательными, но это необязательный параметр!
« неявно развернутый» , что означает, что вам не нужно развертывать его для доступа к значению (но оно все равно может быть нулевым).В основном это поведение, которое мы уже имели в objective-c. Значение может быть нулевым, и вы должны его проверить, но вы также можете просто получить доступ к значению напрямую, как если бы оно не было необязательным (с той важной разницей, что если вы не проверяете ноль, вы получите ошибка выполнения)
Использование:
источник
nil
значению и фактически «работать» с ним, при быстром доступе к неявно развернутому необязательному элементу, в то время как он nil вызовет исключение времени выполнения.