La chose la plus importante est que vous ne voulez vraiment pas créer une variable par accident. C'est un peu OK dans les scripts d'avoir des variables créées sur une affectation, mais dans le code de production, c'est l'un des plus grands maux que vous pouvez rencontrer. Je ne considérerai aucune langue qui permette l'utilisation de cette construction dans le code de production.
J'ai interviewé à plus d'un endroit qui utilisait Visual basic où ils ont posé la question "Quelle est la première ligne dans un fichier VB" et si vous n'avez pas répondu "OPTION EXPLICIT" l'interview s'est arrêtée là. (OPTION EXPLICIT n'autorise pas la création de variables via l'affectation dans VB et force un «dim» explicite)
Voici un exemple de la raison pour laquelle c'est mauvais. Cela fonctionnera (sans défaut assert) si vous copiez le code suivant et collez-le dans un script groovy:
bill = 7
bi1l = bill + 3
assert bill == 7
Il enlève également une partie de la capacité du compilateur pour vous aider refactoring. Par exemple, si vous renommez l'endroit où vous utilisez d'abord la variable, comment le compilateur sait-il vous dire si la seconde utilisation (une affectation) est maintenant une erreur et non une nouvelle variable?
Cette merde est trop dangereuse. Même si cela ne vous a mordu qu'une fois dans votre vie, cela coûterait encore plus de temps que de décliner explicitement les variables des milliers de fois tout au long de votre carrière. Il devient également évident à l'œil juste où il est délayé, vous n'avez pas à deviner.
Dans les scripts c'est plutôt correct car la portée du script est limitée et ils ne sont pas réutilisés et maintenus autant que réécrits, mais un langage qui permet la création en assignation n'est tout simplement pas prêt pour la production.
bonne réponse approfondie! Merci! – codeLes