J'ai vu cela dans un certain nombre de boucles et d'incréments. Au lieu de faire i++, ils font i += 1. Pourquoi cela ?
Réponses
Trop de publicités?La raison générale est qu'il existe deux versions différentes de l'incrément qui se comportent différemment
var i = 0;
1 == ++i // true
y
var i = 0;
1 == i++; // false
++i
se traduit par " incrémenter i, puis évaluer " tandis que i++
se traduit par " évalue i, puis incrémente "
Lorsque vous écrivez ces expressions sous la forme i = i + 1;
l'intention du programmeur est claire et il est plus facile de trouver des bogues dans le code. C'est la même raison pour laquelle les gens écrivent " clauses yoda "comme
if(6 == x){
//. . .
}
parce que si vous faites accidentellement
if(6 = x){
//. . .
}
c'est plus facile d'attraper l'erreur
i = i + 1
est plus facile à décoder en anglais. i++
bien que totalement correct ne se traduit pas bien lorsque les débutants lisent le code. Le programmeur a peut-être essayé de rendre son code plus lisible pour les débutants, ou peut-être simplement de ne pas se préoccuper outre mesure de la syntaxe. Il n'y a pas de bon raison d'utiliser l'un plutôt que l'autre.
- Réponses précédentes
- Plus de réponses