Bye bye ++ con Swift 2.2

Swift

La settimana scorsa ha visto la luce iOS 9.3 e di conseguenza anche XCode viene aggiornato alla versione 7.3. Come annunciato in questo precedente articolo; ci si prepara alla rimozione degli operatori di auto-incremento/decremento che risultano già  deprecati con Swift 2.2 incluso nell’aggiornamento dell’ultima versione della SDK per lo sviluppo.
Aprendo i nostri progetti dopo l’aggiornamento, troviamo già  il warning: ‘++’ is deprecated: it will be removed in Swift 3.0.

Per prima cerchiamo di fare chiarezza su cosa sta succedendo: Il linguaggio Swift, che fa della “sicurezza” uno dei suoi punti di forza, ritiene che l’utilizzo degli operatori di auto-incremento e auto-decremento portino confusione e siano l’origine di alcuni errori nei nostri codici.

Per questa ragione ha deciso di deprecare questa sintassi in favore di una sintassi più “sicura” che non crei confusione e aiuti a prevenire errori spesso banali.
Gli operatori di auto-incremento (++) e auto-decremento (- -) sono quindi già  stati deprecati in Swift 2.2 ed il loro utilizzo verrà  assolutamente proibito nella versione 3.0

Partendo dal presupposto che utilizzare una sintassi del tipo:

anInt = anInt + 1

Non sia per niente elegante, come ci prepariamo a questo cambiamento?

È bene cominciare ad utilizzare gli operatori di incremento al posto degli operatori di auto-incremento in questo modo:

var anInt = 0 // Usiamo una variabile intera come esempio
anInt += 1    // È come anInt++

Ovviamente lo stesso discorso è valido per le operazioni di decremento:

var anInt = 10 // Usiamo una variabile intera come esempio
anInt -= 1    // È come anInt--

Abbiamo anche un ulteriore possibilità , l’utilizzo del metodo advancedBy():

var anInt = 0         // Usiamo ancora una variabile intera come esempio
anInt.advancedBy(1)   // Ci indica il valore di anInt incrementato di 1

Il metodo advancedBy() ritorna il valore incrementato senza però alterare il valore della variabile:

var anInt = 10
let anotherInt = anInt.advancedBy(1)
print(anotherInt) // 11
print(anInt)      // 10 

Per le operazioni di decremento possiamo utilizzare l’operatore -= oppure il metodo advancedBy() con un valore negativo:

var anInt = 10
let anotherInt = anInt.advancedBy(-1)
print(anotherInt) // 9
print(anInt)      // 10 
Condividi se ti è piaciuto

Leggi altri articoli