Tu as aussi le problème du code qui réassigne les variables précédemment assignées.
Encore une fois méthode trop longue.
Pour moi c'est l'exemple typique pourquoi le single return est mauvais, parce qu'il permet d’écrire des horreurs pareille.
Le signe de méthode trop longue, s'il y a des sous parties c'est qu'il faut découper.
En fait, le single return promeut une écriture de code qui peut facilement devenir non lisible.
En fait pour moi c'est une question de limiter le nombre de return. Il y a de très bonnes raisons de faire du retour rapide et dans 95% des cas ça consiste en un schemas simples :
if(!valide(var)){return/* ... */;}/* * contenu de la méthode */return/* ... */
C'est par exemple le cas des méthodes equals() en java. On veut qu'elles soit rapides donc on valide rapidement que l'objet passé est bien du même type, puis on fait un return quand on a vérifier l'égalité des données.
Le problème dont tu parle c'est quelqu'un qui a peur des expressions booléennes trop grosses.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Rust vs Go
Posté par barmic . En réponse à la dépêche Rust 0.12 : non, pas le jeu vidéo, le langage !. Évalué à 3.
Encore une fois méthode trop longue.
Le signe de méthode trop longue, s'il y a des sous parties c'est qu'il faut découper.
En fait pour moi c'est une question de limiter le nombre de return. Il y a de très bonnes raisons de faire du retour rapide et dans 95% des cas ça consiste en un schemas simples :
C'est par exemple le cas des méthodes
equals()en java. On veut qu'elles soit rapides donc on valide rapidement que l'objet passé est bien du même type, puis on fait unreturnquand on a vérifier l'égalité des données.Le problème dont tu parle c'est quelqu'un qui a peur des expressions booléennes trop grosses.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)