Eu entendo que em Swift todas as variáveis devem ser definidas com um valor e que, usando opcionais, podemos definir uma variável a ser definida nil
inicialmente.
O que eu não entendo é o que definir uma variável com um !
está fazendo, porque eu estava com a impressão de que isso "desembrulha" um valor de um opcional. Achei que, ao fazer isso, você estaria garantindo que havia um valor a ser desembrulhado nessa variável, que é o motivo pelo qual em IBActions e similares você o vê usado.
Então, simplesmente, para que serve a variável sendo inicializada quando você faz algo assim:
var aShape : CAShapeLayer!
E por que / quando eu faria isso?
Respostas:
Em uma declaração de tipo, o
!
é semelhante ao?
. Ambos são opcionais, mas o!
é um opcional "desembrulhado implicitamente" , o que significa que você não precisa desembrulhar para acessar o valor (mas ainda pode ser nulo).Esse é basicamente o comportamento que já tínhamos no objetivo-c. Um valor pode ser nulo e você deve verificar por ele, mas você também pode acessar o valor diretamente como se não fosse um opcional (com a importante diferença de que se você não verificar nulo, você obterá um erro de tempo de execução)
Uso:
fonte
nil
valor e realmente "trabalhar" com ele, em rápida acessar um opcional implicitamente desembrulhado Embora seja nula irá lançar uma exceção tempo de execução.