web-dev-qa-db-fra.com

'++' est obsolète: il sera supprimé dans Swift 3

Après la mise à jour vers Xcode 7.3, il y a un tas d'avertissements dans mon projet.

'++' est déconseillé: il sera supprimé dans Swift

Une idée pour corriger cet avertissement? Toutes les raisons pour lesquelles le ++ et -- sera obsolète à l'avenir?

21
Zigii Wong

Depuis Swift 2.2, vous devez utiliser += 1 ou -= 1 au lieu.

Et après avoir recherché l'évolution de Swift, il y a quelques raisons de supprimer ces opérateurs:

  1. Ces opérateurs augmentent la charge d'apprendre Swift comme premier langage de programmation - ou tout autre cas où vous ne connaissez pas déjà ces opérateurs dans un autre langage.

  2. Leur avantage expressif est minime - x ++ n'est pas beaucoup plus court que x + = 1.

  3. Swift s'écarte déjà de C dans la mesure où les opérations de type affectation =, + = et retourne Void (pour plusieurs raisons). Ces opérateurs ne sont pas cohérents avec ce modèle.

  4. Swift a des fonctionnalités puissantes qui éliminent la plupart des raisons courantes pour lesquelles vous utiliseriez ++ i dans un style C pour une boucle dans d'autres langages, donc elles sont relativement peu utilisées dans un code Swift Swift $ === bien écrit). Ces fonctionnalités incluent la boucle for-in, les plages, l'énumération, la carte, etc.

  5. Le code qui utilise réellement la valeur de résultat de ces opérateurs est souvent déroutant et subtil pour un lecteur/mainteneur de code. Ils encouragent un code "trop ​​délicat" qui peut être mignon, mais difficile à comprendre.

  6. Alors que Swift a un ordre d'évaluation bien défini, tout code qui en dépendait (comme foo (++ a, a ++)) ne serait pas souhaitable même s'il était bien défini.

  7. Ces opérateurs sont applicables à relativement peu de types: les scalaires entiers et à virgule flottante et les concepts de type itérateur. Ils ne s'appliquent pas aux nombres complexes, aux matrices, etc.

Enfin, ceux-ci échouent à la métrique de "si nous ne les avions pas déjà, les ajouterions-nous à Swift 3?"

Veuillez vérifier Swift evolution pour plus d'informations.

46
Zigii Wong