Capisco come funzionano gli optionals, ma questo mi sta gettando per un ciclo. Ho una variabile chiamata num
e voglio incrementarlo, così ho fatto la seguente:Incremento Swift Int! non funziona
var num:Int! = 0
num++ //ERROR - Unary operator ++ cannot be applied to an operand of type Int!
Ma per qualche motivo Swift non mi permette di incrementare una forza scartò Int
, anche se si suppone di essere trattati come un normale Int
con la capacità di nulla dietro le quinte. Così ho provato quanto segue, e ha funzionato:
var num:Int! = 0
num = num + 1 //NO ERROR
Tuttavia, sulla base del messaggio di errore che mi ha dato, ho provato quanto segue per rendere l'operatore di incremento ancora molto lavoro:
var num:Int! = 0
num!++ //NO ERROR
La mia domanda è perché il primo bit di codice si interrompe, quando il secondo e il terzo bit di codice non lo fanno? Inoltre, dal momento che num
è un Int!
, non dovrei essere in grado di trattarlo come un normale Int
? Infine, poiché un Int!
deve essere trattato come un normale Int
, come posso scartarlo nel terzo esempio? Grazie.
Poiché si sta inizializzando immediatamente con '0', non deve essere opzionale. Puoi avere 'var num = 0' senza bisogno di inizializzatori – Jack
Grazie per le informazioni, ma a prescindere, perché il mio codice sopra è strano? – Aderis
@JackWu: renderlo facoltativo significa che puoi impostarlo su nil più tardi se hai un motivo per farlo. – gnasher729